资源描述:
《顺序表的基本操作--插入,删除,合并.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、.成绩辽宁工程技术大学上机实验报告实验名称顺序表的基本操作的实现院系软件学院专业软件工程班级软件15-3姓名ZOE学号日期2016.09.27实验目的简述本次实验目的:1.掌握线性表顺序存储结构的特点。2.掌握线性表顺序存储结构的基本操作(创建、插入、删除)的实现。3.通过顺序表有序表的合并的实现,掌握顺序表操作特点。实验准备你为本次实验做了哪些准备:在课后认真复习,基于上课的基础上,对于线性表的存储,插入,删除,合并等有了一定的了解,对于书上给出的程序反复捉摸,达到了较熟练的程度。实验进度本次共有1个练习,完成个。..实验总结日本次实验的收获、体
2、会、经验、问题和教训:顺序表初始化、插入、删除算法。实现两个有序表合并算法.#include"malloc.h"#include"stdlib.h"#defineOK1#defineOVERFLOW-1#defineERROR0#defineLIST_INIT_SIZE100#defineLISTINCREMENT10typedefintElemType;typedefintStatus;/*----------顺序表的存储结构定义--------*/typedefstruct{ElemType*elem;intlength;intlistsize
3、;}sqlist;/*-------------初始化顺序表L----------*/StatusInitList_sq(sqlist*L){L->elem=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType));if(!L->elem)exit(OVERFLOW);L->length=0;L->listsize=LIST_INIT_SIZE;returnOK;}/*------------顺序表L插入----------*/StatusListInsert_Sq(sqlist*L,inti,ElemT
4、ypee){ElemType*newbase,*p,*q;if(i<1
5、
6、i>L->length+1)returnERROR;if(L->length>=L->listsize){newbase=(ElemType*)realloc(L->elem,(L->listsize+LISTINCREMENT)*sizeof(ElemType));if(!newbase)exit(OVERFLOW);L->elem=newbase;L->listsize=L->listsize+LISTINCREMENT;}q=&(L->elem[i-1]);for(p=
7、&(L->elem[L->length-1]);p>=q;--p)*(p+1)=*p;..*q=e;++L->length;returnOK;}/*------------顺序表L删除----------*/StatusListDelete_Sq(sqlist*L,inti,ElemType*e){ElemType*p,*q;if(i<1
8、
9、i>L->length)returnERROR;p=&(L->elem[i-1]);*e=*p;q=L->elem+L->length-1;/*printf("%d,%d,%d,%d",p,L->elem,L-
10、>length,q);*/for(++p;p<=q;++p)*(p-1)=*p;--L->length;returnOK;}/*-----------合并----------*/voidMergelist(sqlistLa,sqlistLb,sqlistLc){inti,j,k;i=j=k=0;while((i11、a.length)Lc.elem[k++]=La.elem[i++];while(j12、intf("Listsize:%d",La.listsize);}elseprintf("error!");/*-