资源描述:
《线性表的创建插入和删除的操作》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验内容:线性表的创建、插入删除等#include"stdio.h"#include"stdlib.h"int*inistl(intm,int*n)/*建立线性表函数*/{int*v=NULL;v=malloc(m*sizeof(int*));/*创建链表,并把首地址赋给指针V*/n=0;returnv;}voidinsl(int*v,intm,int*n,inti,intb)/*在链表指定位置插入元素b*/{intj;if(*n>=m)/*检查是否链表溢出*/{printf("thestackisoverflow");retur
2、n;}if(i>*n-1)i=*n+1;/*若插入点大于元素位置则在表的结束插入*/if(i<1)i=1;/*空表在首部插入元素*/for(j=*n;j>=i;j--)/*首位之间任意位置的插入*/v[j]=v[j-1];v[i-1]=b;*n=*n+1;/*插入后元素统计指针加1*/}voiddesl(int*v,intm,int*n,inti)/*线性表删除函数*/{intj;if(*n==0)/*判断线性表是否为空*/{printf("thestackisunderflow");return;}if((i<1)
3、
4、(i>*n
5、))/*删除点在首部以前和尾部以后特殊情况排除*/{printf("notthiselementinthelist!");return;}for(j=i;j<=*n-1;j++)/*在允许位置做删除操作*/v[j-1]=v[j];*n=*n-1;/*元素统计指针减1*/return;})voidinput(int*v,intn)/*空表起始输入元素函数*/{inti;for(i=0;i6、i;for(i=0;i7、nf("%d",n);printf("请输入线性表起始元素:");input(v,*n);/*调用线性表元素输入函数*/printf("请输入线性表插入点位置:");scanf("%d",&i);printf("请输入线性表插入元素:");scanf("%d",&b);insl(v,m,n,i,b);/*调用线性表插入函数*/printf("输出操作后线性表:");output(v,*n);/*调用线性表输出函数*/printf("");printf("请输入线性表删除点位置:");scanf("%d",&i);desl(v,m,
8、n,i);/*调用线性表元素删除函数*/printf("输出操作后线性表:");output(v,*n);/*调用线性表输出函数*/printf("");}initsl(intm,intn){int*v=NULL;v=malloc(m*sizeof(int));returnv;}voidinsl(intv,intn,intm,inti,intb){if(*n==m){printf("overflow");return;}if(i>*n-1);i=*n+1;if(i<1);i=1;for(j=*n;j>=i:j++)v[j]=v
9、[j-1];v[i-1]=b;*n=*n+1;return;}voiddesl(intm,int*n,intv,inti){if(*n==0){printf("underflow");return;if((i<1)
10、
11、(i>*n)){printf("Notthiselement")input(int*v,intn){for(i=0;i<*n;i++)scanf("%d",v+i);}output(intv,int*n){for(i=0;i<*n;i++)printf("%d",v+i);}voidmain(){int*v=NULL
12、,m,*n=NULL,i,b;n=malloc(sizeof(int));printf("请输入空间容量:");scanf("%d",&m);v=initsl(m,n);printf("请输入实际个数:");scanf(