资源描述:
《线性表的插入与删除》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、#include"stdio.h"#include"stdlib.h"input(int*v,int*n){inti;printf("请输入数据:");for(i=0;i<*n;i++)scanf("%d",v+i);}output(int*v,int*n){inti;for(i=0;i<*n;i++)printf("%d",*(v+i));}int*initsl(intm,int*n){int*v;v=(int*)malloc(m*sizeof(int));//创建线性表的空间大小*n=0;//线
2、性表内空间元素为零returnv;}voidinsl(int*v,intm,int*n,inti,intb){intj;if(*n==m){printf("overflow");return;}if(i>*n)i=*n+1;if(i<1)i=1;for(j=*n;j>=i;j--)v[j]=v[j-1];v[i-1]=b;//在i的位置插入元素*n=*n+1;//空间实际长度加一return;}voiddesl(int*v,intm,int*n,inti){intj;if(*n==0){prin
3、tf("underflow");return;}了if(i>*n)i=*n+1;if(i<1)i=1;for(j=i;j<=*n-1;j++)v[j-1]=v[j];*n=*n-1;//空间实际长度减一return;}voidmain(){charc;int*v=NULL,*n=NULL,m,i,b;n=(int*)malloc(sizeof(int));printf("请输入线性表的空间大小:");scanf("%d",&m);v=initsl(m,n);//建立线型表printf("请输入线
4、性表的实际长度:");scanf("%d",n);input(v,n);output(v,n);getchar();printf("是否要插入新元素Y/N:");c=getchar();getchar();while(c=='Y'
5、
6、c=='y')//实现交互插入数据{printf("请输入要插入的位置i和元素b:");scanf("%d,%d",&i,&b);insl(v,m,n,i,b);//插入数据printf("插入后:");output(v,n);getchar();print
7、f("是否要继续插入新元素Y/N:");c=getchar();}getchar();printf("是否要删除元素Y/N:");c=getchar();getchar();while(c=='Y'
8、
9、c=='y')//实现交互删除数据{printf("请输入要删除的位置i:");scanf("%d",&i);desl(v,m,n,i);//删除数据printf("删除后:");output(v,n);getchar();printf("是否要继续删除元素Y/N:");c=get
10、char();getchar();}}