| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 641 人关注过本帖
标题:数据结构(c语言版)代码寻人修改
只看楼主 加入收藏
d542214
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2010-11-29
收藏
 问题点数:0 回复次数:5 
数据结构(c语言版)代码寻人修改
#include <stdio.h>
#define error 0
#define ok 1
#define ml 5
 typedef struct
 {
   int list[ml];
   int size;    /*当前线性表长度*/
   int maxsize;
 }sqlist;

void *init_list(sqlist *l,int m)
{
  l=(sqlist *)malloc(m*sizeof(sqlist));
  if(!l)
  {
    printf("error");
    exit(1);
   }
   else
       l->size=0;
       l->maxsize=m;
       return l;
}

void disp_list(sqlist *l)
{
 int i;
 for(i=0;i<l->size;i++)
 printf("%d\t",l->list[i]);
 printf("\n");
}

int insert_list(sqlist *l,int x,int i)
{
 int j;
 if(i<1||i>l->size+1) return error;
 if(l->size>=ml) return error;
 for(j=l->size-1;j>=i-1;j--)
   l->list[j+1]=l->list[j];
   l->list[i-1]=x;
   l->size++;
   return ok;
}

void main()
{
 int p,n;
 int x=1;
 sqlist a,*b;
 b=init_list(&a,ml);
 printf("listaddr=%p\t size=%d\t maxsize=%d\n",b->list,b->size,b->maxsize);

while(1)
{
  printf("\n请输入元数值,0为结束输入:");
  scanf("%d",&x);
  if(!x) break;
  printf("请输入插入位子:")
  insert_list(b.x,p);
  printf("线性表:\n");
  disp_list(b);
  }
}
这代码有什么问题?修改的代码发过来哈!!
搜索更多相关主题的帖子: 数据结构 c语言 寻人 代码 
2010-11-29 13:01
a422100231
Rank: 2
等 级:论坛游民
帖 子:9
专家分:20
注 册:2010-11-26
收藏
得分:0 
#include <stdio.h>
#include <malloc.h>
#include <stdlib.h>
#define error 0
#define ok 1
#define ml 5
typedef struct
{
   int list[ml];
   int size;    /*当前线性表长度*/
   int maxsize;
}sqlist;

void init_list(sqlist *l)
{
       l->size=0;
}

void disp_list(sqlist *l)
{
int i;
for(i=0;i<l->size;i++)
printf("%d\t",l->list[i]);
printf("\n");
}
int insert_list(sqlist *l,int x,int i)
{
int j;
if(i<1||i>l->size+1) return error;
if(l->size>=ml) return error;
for(j=l->size-1;j>i-1;j--)
   l->list[j+1]=l->list[j];
   l->list[i-1]=x;
   l->size++;
   return ok;
}

void main()
{
int n;
int x=1;
sqlist a;
init_list(&a);
printf("listaddr=%d\t size=%d\t maxsize=%d\n",a.list,a.size,a.maxsize);
while(1)
{
  printf("\n请输入元数值,0为结束输入:");
  scanf("%d",&x);
  if(!x) break;
  printf("请输入插入位子:");
  scanf("%d",&n);
  insert_list(&a,x,n);
  printf("线性表:\n");
  disp_list(&a);
  }
}
2010-11-30 10:10
a422100231
Rank: 2
等 级:论坛游民
帖 子:9
专家分:20
注 册:2010-11-26
收藏
得分:0 
这还有我以前写的一个,你可以看看
#include <stdio.h>
typedef struct
{
    int list[100];
    int length;
}seqlist;
void initlist(seqlist *l)
{
    l->length=0;
}
int isempty(seqlist l)
{
    if(l.length==0)
        return 1;
    else
        return 0;
}
int getelem(seqlist l,int i,int *e)
{
    if(i<1||i>l.length)
        return -1;
    *e=l.list[i-1];
    return 1;
}
int locateelem(seqlist l,int e)
{
    int i;
    for(i=1;i<=5;i++)
        if(l.list[i-1]==e)
            return i;
        return 0;
}
int insertlist(seqlist *l,int i,int e)
{
    int j;
    if(i<1||i>l->length+1)
    {
        printf("插入位置不合法\n");
        return -1;
    }
    else if(i>=100)
    {
        printf("顺序表已满\n");
        return 0;
    }
    else
    {
        for(j=l->length;j>=i;j--)
            l->list[j]=l->list[j-1];
        l->list[i-1]=e;
        l->length=l->length+1;
        return 1;
    }
}
int deletelist(seqlist *l,int i,int *e)
{
    int j;
    if(l->length<=0)
    {
        printf("顺序表已空\n");
        return 0;
    }
    else if(i<1||i>l->length)
    {
        printf("删除位置不合法\n");
        return -1;
    }
    else
    {
        *e=l->list[i-1];
        for(j=i;j<l->length;j++)
            l->list[j-1]=l->list[j];
        l->length--;
        return 1;
    }
}
int listlength(seqlist l)
{
    return l.length;
}
void reser(seqlist *s)
{
    int i,len,m;
    len=s->length;
    for(i=0;i<s->length/2;i++)
    {
        m=s->list[i];
        s->list[i]=s->list[len-i-1];
        s->list[len-i-1]=m;
    }
}
void main()

{
    seqlist s;
    int i,j,e,x,a[5]={0,1,2,3,4};
    initlist(&s);
    e=a[3];
    s.length=sizeof(a)/sizeof(a[0]);
    printf("插入线性表中元素的值\n");
    for(i=1;i<=s.length;i++)
        s.list[i-1]=a[i-1];
    printf("%d\n",s.length);
    printf("请输入要插入的元素的值\n");
    scanf("%d",&x);
    printf("判断要插入的位置\n");
    j=locateelem(s,e);
    printf("插入的位置是%d\n",j);
    insertlist(&s,j,x);
    printf("最终线性表中的元素值为\n");
    for(i=0;i<s.length;i++)
        printf("%d  ",s.list[i]);
    printf("\n");
    printf("数组的元素倒序输出的顺序为:\n");
    reser(&s);
    for(i=0;i<s.length;i++)
        printf("%d  ",s.list[i]);
}
2010-11-30 10:11
d542214
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2010-11-29
收藏
得分:0 
恩!谢谢了!
2010-11-30 17:44
d542214
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2010-11-29
收藏
得分:0 
有时间多交流交流哈!!
2010-11-30 17:46
a422100231
Rank: 2
等 级:论坛游民
帖 子:9
专家分:20
注 册:2010-11-26
收藏
得分:0 
回复 3楼 a422100231
呵呵,好的!
2010-12-01 13:39
快速回复:数据结构(c语言版)代码寻人修改
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.045045 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved