资源描述:
《顺序表的基本操作》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、顺序表的基本操作删除运算DeleteList(L,i)#include#include#defineOK1#defineMAXSIZE100typedefintdatatype;typedefstruct{datatypea[MAXSIZE];intlast;}Seqlist;voidInitList(Seqlist*L){L=(Seqlist*)malloc(sizeof(Seqlist));L->last=-1;}voidCreatSeqList(Seqlist*L){inti;printf("创建顺序表,请输入5
2、个表元素:");L->last=0;for(i=0;i<5;i++){scanf("%d",&L->a[i]);L->last++;}}voidOutputSeqList(Seqlist*L){inti;for(i=0;ilast;i++){printf("%d",L->a[i]);}}intDeleteSeqList(Seqlist*L,inti){intj;if(i<1
3、
4、i>L->last)printf("InsertlocateERROR!");else{for(j=i;j<=L->last;j++)L->a[j-1]=L->a[j];L-
5、>last--;OutputSeqList(L);}returnOK;}intmain(){SeqlistL;inti;CreatSeqList(&L);OutputSeqList(&L);printf("请输入待删除的位置i:");scanf("%d",&i);DeleteSeqList(&L,i);}插入运算intInsertSeqlist(Seqlist*L,inti,datatypex)#include"stdio.h"#include"malloc.h"#defineMAXSIZE100#defineOK1typedefintdatatype
6、;//定义datatype的类型typedefstruct{datatypea[MAXSIZE];intlast;}Seqlist;//定义一个结构体,名字就是SeqlistvoidInitSeqlist(Seqlist*L)//初始化顺序表{L=(Seqlist*)malloc(sizeof(Seqlist));//申请一块Seqlist类型的存储单元操作,并将其地址赋给变量LL->last=-1;}voidCreatSeqlist(Seqlist*L)//创建顺序表{inti;L->last=0;printf("请输入5个数,创建顺序表:");for(
7、i=0;i<5;i++){scanf("%d",&L->a[i]);L->last++;}}voidOutputSeqlist(Seqlist*L)//输出顺序表{inti;for(i=0;ilast;i++)printf("%d",L->a[i]);}intInsertSeqlist(Seqlist*L,inti,datatypex)//把x插入到顺序表的i位置{intj;if(L->last==MAXSIZE-1){printf("表满");return-1;}if(i<1
8、
9、i>L->last){printf("位置错");//检查插
10、入位置的正确性return0;}{for(j=L->last;j>=i-1;j--)L->a[j+1]=L->a[j];//结点后移L->a[i-1]=x;//新元素插入L->last++;//last仍然指向最后一个元素OutputSeqlist(L);}returnOK;}intmain(){SeqlistL;inti;datatypex;CreatSeqlist(&L);OutputSeqlist(&L);printf("请输入插入数的位置和值,i,x:");scanf("%d%d",&i,&x);InsertSeqlist(&L,i,x);//
11、调用插入函数}#include#include#defineMAXSIZE100#defineN6typedefstruct{intdata[MAXSIZE];intlast;}Seqlist;voidCreateSeqlist(Seqlist*L);voidOutSeqlist(Seqlist*L);intLocationSeqlist(Seqlist*L,intx)//在顺序表中查找x{inti=0;while(i<=L->last&&L->data[i]!=x)i++;if(i>L->last)return-1;
12、elsereturni;}intmain(void){intx,i