正文描述:《采用顺序表、单链表二种存储结构.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、南京信息工程大学数据结构实验(实习)报告实验(实习)名称顺序表、单链表实验(实习)日期2015-10-11得分指导教师顾韵华系计软院专业计科年级2014级班次2姓名一、实验目的1、掌握采用顺序表、单链表二种存储结构实现线性表的归并运算。二、实验内容1、输入两个顺序表A和B的元素值(整数),元素递增有序,编写程序将A和B归并成一个按元素值递增有序的顺序表C。分别输出顺序表A、B和C所有元素的值。2、输入两个单链表A和B的元素值(整数),其表中元素递增有序,编写程序将A和B归并成一个按元素值递增有序的单链表C。分别输出单链表A、B和C所有结点的值。三、数
2、据结构设计和实现1、顺序表数据结构设计和实现#include#include#include#include//常量定义#defineLIST_INIT_SIZE100#defineLISTINCREMENT10#defineOK1#defineERROR0#defineOVERFLOW-2#defineTrue1#defineFalse0//函数返回值类型定义typedefintStatus;//表节点数据类型定义typedefintElemType;//顺序表类型定义typ
3、edefstruct{ElemType*elem;intlength;intlistsize;}SqList;//顺序表各操作声明StatusInitList_Sq(SqList&L);StatusDetroyList_Sq(SqList&L);StatusClearList_Sq(SqList&L);intListEmpty_Sq(SqListL);intListLength_Sq(SqListL);StatusGetElem_Sq(SqListL,inti,ElemType&e);StatusListInsert_Sq(SqList&L,inti
4、,ElemTypee);StatusListDelete_Sq(SqList&L,inti,ElemType&e);voidPrintList_Sq(SqListL);voidMergeList(SqListLa,SqListLb,SqList&Lc);#include"link.h"#include"iostream.h"StatusInitList_Sq(SqList&L){L.elem=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType));if(!L.elem)exit(OVERFLOW);L.l
5、ength=0;L.listsize=LIST_INIT_SIZE;returnOK;}StatusDetroyList_Sq(SqList&L){if(L.elem)free(L.elem);returnOK;}StatusClearList_Sq(SqList&L){if(L.elem){L.length=0;L.listsize=0;}returnOK;}intListEmpty_Sq(SqListL){return(L.length==0);}intListLength_Sq(SqListL){cout<
6、StatusGetElem_Sq(SqListL,inti,ElemType&e){if(i<1
7、
8、i>=L.length)returnERROR;e=L.elem[i-1];returnOK;}StatusListInsert_Sq(SqList&L,inti,ElemTypee){ElemType*newbase,*p,*q;if(i<1
9、
10、i>L.length+1)returnERROR;if(L.length>=L.listsize){newbase=(ElemType*)realloc(L.elem,(L.listsize+LISTINCR
11、EMENT)*sizeof(ElemType));if(!newbase)exit(OVERFLOW);L.elem=newbase;L.listsize+=LISTINCREMENT;}q=&(L.elem[i-1]);for(p=&L.elem[L.length-1];p>=q;p--)*(p+1)=*p;*q=e;L.length++;returnOK;}StatusListDelete_Sq(SqList&L,inti,ElemType&e){ElemType*p,*q;if(i<1
12、
13、i>L.length)returnERROR;p=&(L
14、.elem[i-1]);e=*p;q=L.elem+L.length-1;for(++p;p
显示全部收起