电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

顺序表基本操作VIP免费

顺序表基本操作_第1页
1/5
顺序表基本操作_第2页
2/5
顺序表基本操作_第3页
3/5
#include#include#definemax_size50//宏定义常量max_size为50typedefstruct{//定义含有两个整型变量的结构体命名为seqlistint*pData;intlength;}seqlist;//建立顺序表seqlist*Initlist(seqlist*L){if(L==NULL)L=(seqlist*)malloc(sizeof(seqlist));//如果L指向空地址则开辟seqlist型的空间L->pData=(int*)malloc(max_size*sizeof(int));//开辟50个int型的空间if(!L->pData)returnNULL;//如果开辟没成功,则返回空L->length=0;//链表长度为0returnL;//返回L的值}//输出顺序表voidprintlist(seqlist*L){intk;if(!L->pData){printf("顺序表不存在!\n");//顺序表不存在是提示return;}if(L->length==0){printf("顺序表是空的!\n");//顺序表长度为0时提示return;}for(k=0;klength;k++){printf("%d\n",L->pData[k]);//循环输出顺序表中的所有元素}}//在指定位置插入元素intinsertlist(seqlist*L){-1-intk,x,i;printf("请输入插入的位置:");scanf("%d",&i);printf("\n");printf("请输入插入的值:");scanf("%d",&x);printf("\n");//输入要插入元素得位置和值if(!L->pData||L->length>=max_size||i-1>L->length){printf("顺序表或数据有问题,不能插入");//如果顺序表不存在或长度过长或插入位置超过表时的提示return0;}for(k=L->length-1;k>=i-1;k--)L->pData[k+1]=L->pData[k];//插入位置以后的元素依次后移一位L->pData[i-1]=x;//把要插入的值插入到指定位置L->length++;//表的长度加一return1;}//删除指定位置的元素intdeletelist(seqlist*L){inti,k;printf("请输入删除元素的位置:");scanf("%d",&i);printf("\n");//输入要删除元素的位置if(!L->pData||L->length==0||i>L->length){return0;//如果链表不存在或长度为0或删除的位置超出表的范围}for(k=i;klength;k++)L->pData[i-1]=L->pData[i];//要删除的位置以后的元素依次前依一L->length--;//表的长度减一return1;}//求表长voidgetlength(seqlist*L){if(L->pData)printf("表的长度为:%d\n",L->length);//输出表的长度}-2-//逆转顺续表intreverselist(seqlist*L){intk,t;if(L->length<=1)return1;//如果表长小于1,返回for(k=0;klength/2;k++){t=L->pData[k];L->pData[k]=L->pData[L->length-k-1];L->pData[L->length-k-1]=t;//对应位置的元素对调位置}return1;}//销毁顺序表intDestroylist(seqlist*L){if(L->pData){free(L->pData);//清空顺序表L->length=0;//表的长度变为一}return1;}//置空顺序表intsetlist(seqlist*L){if(!L->pData)return0;//顺序表不存在时返回0L->length=0;//表的长度置为0return1;}//求前驱voidgetprior(seqlist*L){-3-intk,x;if(!L->pData||L->length==0)printf("顺序表不存在或者为空!\n");else{printf("输入需要查找前驱的元素:");scanf("%d",&x);//输入要查找的位置for(k=0;klength;k++)if(L->pData[k]==x)printf("%d\n",L->pData[k-1]);//输出前一个位置的元素}}//求后继voidgetnext(seqlist*L){intk,x;if(!L->pData||L->length==0)printf("顺序表不存在或为空!\n");else{printf("输入需要查找后继的元素:\n");scanf("%d",&x);//输入要查找的位置for(k=0;klength;k++)if(L->pData[k]==x)printf("%d\n",L->pData[k+1]);//输出前一个位置的元素}}//查找元素voidgetelem(seqlist*L){intk,i,x;printf("请输入查找元素的位置:");scanf("%d",&i);//输入查找的位置if(i<=0||!L->pData||i>L->length)printf("顺序表不存在或位置超出顺序表的范围");elseprintf("%d\n",L->pData[i-1]);//如果输入的位置正确输出此位置的值printf("请输入要查找的元素:");scanf("%d",&x);//输入要查找的元素for(k=0;k<=L->length;k++)if(L->pData[k]==x)-4-printf("%d\n",k+1);//输出它所在的位置}//判断是否为空voidisempty(seqlist*L){if(!L->pData)printf("顺序表为空!\n");if(L->length==0)printf("顺序表是空的!");if(L->length!=0)printf("顺序表是非空的!");}voidmain(){seqlist*L=NULL;inti;L=Initlist(L);printlist(L);for(i=0;i<5;i++){insertlist(L);printlist(L);//循环插入5个值}getlength(L);deletelist(L);printlist(L);getlength(L);printlist(L);getelem(L);getprior(L);getnext(L);reverselist(L);Destroylist(L);printf("顺序表已销毁!");setlist(L);//对各个子函数的调用printf("顺序表以置空!");}-5-

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

顺序表基本操作

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部