资源描述:
《顺序表的查找、删除、合并运算》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、西安思源学院电信学院数据结构中顺序表操作(查找、插入、删除、合并运算)作者:rockyEmail:whg841001@126.com#defineMAXSIZE100/*顺序表的查找*/typedefintElemType;typedefstruct{ ElemTypeelem[MAXSIZE];//用数组模拟线性表 intlast;//记录线性表中最后一个元素的位置}SeqList;intLocate(SeqListL,ElemTypee)/*在线性表中查找与e相同的元素,若找到返回该元素的位置,否则返回0*/{ inti=0; while
2、((i<=L.last)&&(L.elem[i]!=e)) i++; if(i<=L.last) return(i+1); else return0;}voidmain(){ SeqListl; intp,q,r,i; printf("请输入线性表的长度:"); scanf("%d",&p); l.last=p-1; printf("请输入线性表中各元素的值:"); for(i=0;i<=l.last;i++) scanf("%d",&l.elem[i]); printf("请输入要查找的元素:"); scanf("%d",&r);
3、q=Locate(l,r); if(q) printf("要查找的元素找到,位置是%d",q); else printf("抱歉!没有找到想要的元素。");}西安思源学院电信学院西安思源学院电信学院#defineMAXSIZE100/*顺序表的插入运算*/#defineOK1#defineERROR0typedefintElemType;typedefstruct{ ElemTypeelem[MAXSIZE];//用数组模拟线性表 intlast;//记录线性表中最后一个元素的位置}SeqList;intInsList(SeqList*L
4、,ElemTypee,inti)/*在线性表第i个位置插入一个元素e*/{ intk; if((i<1)
5、
6、(i>L->last+2)) { printf("插入位置的i值不合法!"); returnERROR; } if(L->last>=MAXSIZE-1) { printf("表满无法插入!"); returnERROR; } for(k=L->last;k>=i-1;k--) L->elem[k+1]=L->elem[k]; L->elem[i-1]=e; L->last++; returnOK;}voidmain(){ Seq
7、Listl; intp,q,r,i,j; printf("请输入线性表的长度:"); scanf("%d",&p); l.last=p-1; printf("请输入线性表中各元素的值:"); for(i=0;i<=l.last;i++) scanf("%d",&l.elem[i]); printf("请输入要插入的位置:"); scanf("%d",&i); printf("请输入要插入的元素值:"); scanf("%d",&r); q=InsList(&l,r,i); if(q==1)西安思源学院电信学院 { printf(
8、"插入成功!插入后的线性表为:"); for(j=0;j<=l.last;j++) printf("%d",l.elem[j]); } else printf("插入失败!"); } 西安思源学院电信学院#defineMAXSIZE100/*顺序表的删除运算*/#defineOK1#defineERROR0typedefintElemType;typedefstruct{ ElemTypeelem[MAXSIZE];//用数组模拟线性表 intlast;//记录线性表中最后一个元素的位置}SeqList;intDelList(SeqLi
9、st*L,inti)/*删除第i位置上元素的值*/{ intk,e; if((i<1)
10、
11、(i>L->last+1)) { printf("删除位置不合法!"); returnERROR; } e=L->elem[i-1]; for(k=i;k<=L->last;k++) L->elem[k-1]=L->elem[k]; L->last--; returnOK;}voidmain(){ SeqListl; intp,q,r,i,j; printf("请输入线性表的长度:"); scanf("%d",&p); l.last=p-1; pr
12、intf("请输入线性表中各元素的值:"); for(i=0;i<=l.last;i++) scanf("%d",&l.elem[i]); printf("