文档库 最新最全的文档下载
当前位置:文档库 › list顺序

list顺序

#include
#include
struct SeqList//定义结构体SeqList
{
int MAXNUM;
int n;
int *element;
};
typedef struct SeqList *PseqList;//定义pseqList为指向结构体的指针变量
int m,n,x,k,g,s,p,j;/*的最大长度和其中的元素个数 k为判断空表是否创建成功的标准,x为需要查找的元素
g为查找函数返回值 s为插入的数值 p要插入的位置 g观察元素是否插入成功的标志*/
main()
{
PseqList palist,paalist;//定义palist为这种变量
PseqList creaseNullList_seq(int m);//函数创建顺序表
int isNullList_seq(PseqList ppalist);//函数判断表是否建成功
int locate_seq(PseqList pllist,int x);//函数 在顺表中查找一个元素x,pllist为函数参数
PseqList input(PseqList plist,int n);//输入函数
int charu(PseqList ppaalist,int p,int s);//表示 在p元素钱插入s元素
int delete_seq(PseqList paalist,int b);//删除元素b
printf("输入的m必须大于n\n请输入需要建立的顺序表的大小和元素的个数m n\n");
scanf("%d %d",&m,&n);
palist=creaseNullList_seq(m);
k=isNullList_seq(palist);//讲调用的函数返回值给K
printf("显示顺序表是否创建成功:1成功,0未成功\n");
printf("%d\n",k);//显示创建空表是否成功
printf("提示输入每一个元素\n");
paalist=input(palist,n);
printf("请输入需要查找的元素\n");
scanf("%d",&x);
g=locate_seq(paalist,x);
if(g!=-1)
printf("该元素的下标为:%d\n",g);
else
printf("该元素不存在\n");
printf("\n");
printf("提示在第几个元素前面插入元素,并输入该元素的位置,并输入将要插入的元素p s\n");
scanf("%d %d",&p,&s);
j=charu(paalist,p,s);
printf("显示是否插入:1表示成功 0表示没成功\n");
int y,b,l;//y 增加元素后的循环控制输出 b删除元素 l控制删除元素后的顺序列表
for(y=0;yprintf("%d ",paalist->element[y]);
printf("\n");
printf("请输入需要删除的元素的下标\n");
scanf("%d",&b);
delete_seq(paalist,b);
printf("删除后的顺序表\n");
for(l=0;lprintf("%d ",paalist->element[l]);
printf("\n");
}

PseqList creaseNullList_seq(int m)
{
PseqList palist;
palist=(PseqList)malloc(sizeof(struct SeqList));//为创建结构体变量分配空间
if(palist!=NULL)//判断是否为空
{
palist->element=(int *)malloc(sizeof(int)*m);//不为空 jiu为element分配空间
if(palist->element)
{
palist->MAXNUM=m;
palist->n=0;
return palist;
}
else free(palist);
}
printf("out of spance!!\n");
return NULL;
}
int isNullList_seq(PseqList ppalist)
{
return(ppalist->n==0);
}

PseqList input(PseqList plist,int n)
{
int i;
for(i=0;i{
scanf("%d",&plist->element[i]);
plist->n++;
}return plist;
}

int locate_seq(PseqList pllist,int x)
{
int q;
for(q=0;qelement[q];q++)
if

(pllist->element[q]==x)
return q;
return -1;
}

int charu(PseqList ppaalist,int p,int s)
{
int q;
if(ppaalist->n>=ppaalist->MAXNUM)//表示插入位置过大 溢出
{
printf("overflow!\n");
return 0;
}
if(p<0||p>ppaalist->n) //判断需要插入的元素位置是否大于顺序表中的元素个数
{
printf("Not exist!\n");
return 0;
}
for(q=ppaalist->n-1;q>=p;q--)
ppaalist->element[q+1]=ppaalist->element[q];
ppaalist->element[p]=s;
ppaalist->n=ppaalist->n+1;
return 1;
}


int delete_seq(PseqList paalist,int b)
{
int q;
if(b<0||b>paalist->n-1)
{
printf("Not exist!\n");
return 0;
}
for(q=b;qn-1;q++)
paalist->element[q]=paalist->element[q+1];
paalist->n=paalist->n-1;
return 1;
}




相关文档