数据结构 用C语言描述

2024-11-24 05:59:43
推荐回答(1个)
回答1:

#include
#define maxsize 100
typedef int Datatype;

typedef struct
{
Datatype data[maxsize];
int n;
}seqlist;

seqlist* createNullList_seq(void)
{
seqlist *l;
l=(seqlist*)malloc(sizeof(seqlist));
if(l!=NULL)
l->n=0;
else
printf("Out of space!!\n");
return l;
}

int insert_seq(seqlist* l,int p, Datatype x)
{
int q;
if(l->n==maxsize)
{ printf("overflow!\n");
return(0);
}
if(p<1||p>l->n+1)
{printf("no exist!\n");
return(0);
}
for(q=l->n-1;q>=p-1;q--)
l->data[q+1]=l->data[q];
l->data[q+1]=x;
l->n=l->n+1;
return(1);
}

int delete_seq(seqlist* l,int p)
{
int q;
if(p<1||p>l->n)
{printf("no exist!\n");
return(0);
}
for(q=p;q<=l->n-1;q++)
l->data[q-1]=l->data[q];
l->n=l->n-1;
return(1);
}

int locate_seq(seqlist* l,int x)
{
int q;
for(q=0;q<=l->n;q++)
{
if(l->data[q]==x)
return(q+1);
}
}

void display(seqlist* l)
{
for(int k=0;kn;k++)
printf("%d ,",l->data[k]);
}

int length(seqlist* l)
{
return l->n;
}

void main()
{
int i,num,d,len,loc,j;
seqlist *l;
l=createNullList_seq();
num = 7;
for(i=0,j=1;i {
scanf("%d",&d);
insert_seq(l,j,d);
}
insert_seq(l,3,105);
display(l);
printf("\n");
delete_seq(l,6);
display(l);
printf("\n");
len=length(l);
printf("the length of seqlist is %d:",len);
printf("\n");
display(l);
printf("\n");
loc=locate_seq(l,60);
printf("the location of 60 is %d:",loc);

}

呵呵 我这学期也学数据结构 不过我们好象比你学的快哦
你这题目我帮你改好了 也运行过了 在VC++6.0里
结果是没有问题的 这个我保证
呵呵 其实你写的已经很完整了 只是很多地方丢三落四的
少个括号啊 符号啊 什么的 你都没注意
我逃课帮你改的哦 西西