1 / 16
文档名称:

线性表的链式存储结构和实现.doc

格式:doc   大小:74KB   页数:16页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

线性表的链式存储结构和实现.doc

上传人:yuzonghong1 2019/8/20 文件大小:74 KB

下载得到文件列表

线性表的链式存储结构和实现.doc

文档介绍

文档介绍:线性表的链式存储结构和实现石家庄经济学院实验报告学院:专业:计算机班级:学号:姓名:信息工程学院计算机实验中心制实验题目:线性表的链式存储结构和实现实验室:机房4设备编号:09完成日期:、。(建表、插入、删除等)和具体的函数定义。二、实验目的掌握链式存储结构的特点,掌握并实现单链表的常用的基本算法。三、(1)线性表的抽象数据类型ADT的描述及实现。本实验实现使用Visualc++。具体实现要求:(2)完成对线性表链式存储结构的表示和实现。(3)实现对单链表的创建。(4)实现对单链表的插入和删除操作。:ADTLIST{抽象对象:D={ai|ai<-Elemset,i=1,2,…,n,n>=0}数据关系:R1={<ai-1,ai<-D,i=2,…,n}基本操作:InitList(&L)操作结果:构造一个空的线性表L。DestoryList(&L)初始条件:线性表L已存在。操作结果:销毁线性表LCLearList(&L)初始条件:线性表L已存在。操作结果:将L重置为空表。ListEmpty(L)初始条件:线性表L已存在。操作结果:若L为空表,则返回TRUE,否则返回FALSE。ListLength(L)初始条件:线性表L已存在。操作结果:返回L中数据元素个数。GetElem(L,I,&e)初始条件:线性表L已存在,1<=i<=ListLength(L)。操作结果:用e返回L中第i个数据元素的值。LocateElem(L,pare())初始条件:pare()是数据元素判定的函数。操作结果:pare()的数据元素的位序。若这样的数据元素不存在,则返回值为0。PriorElem(L,cur_e,&pre_e)初始条件:线性表L已存在。操作结果:若cur_e是L的数据元素,且不是第一个,则用pre_e返回它的前驱,否则操作失败,pre_e无定义。NextElem(L,cur_e,&next_e)初始条件:线性表L已存在。操作结果:若cur_e是L的数据元素,且不是最后一个,则用pre_e返回它的后继,否则操作失败,pre_e无定义。ListInsert(&L,I,e)初始条件:线性表L已存在,1<=i<=ListLength(L)+1。操作结果:在L中第i个位置之前插入新的数据元素e,L的长度加1。ListDelete(&L,I,&e)初始条件:线性表L已存在且非空,1<=i<=ListLength(L)。操作结果:删除L中第i个数据元素,并用e返回其值,L的长度减1。ListTraverse(L,visit())初始条件:线性表L已存在。操作结果:依次对L的每个数据元素调用函数visit()。一旦visit()失败,则操作失败。}(1):#include<>#include<>#RUE1#defineFALSE0#defineOK1#defineERROR0#defineINFEASIBLE-1#defineOVERFLOW-2typedefintStatus;:typedefintElemType;typedefstructLNode{ElemTypedata;structLNode*next;}LNode,*Linklist;;b02-:intCreatelist_L(Linklist&L,intn){ Linklistp; inti; L=(Linklist)malloc(sizeof(LNode)); L->next=NULL; for(i=n;i>0;--i) { p=(Linklist)malloc(sizeof(LNode)); scanf("%d",&p->data); p->next=L->next;L->next=p; } returnOK;}StatusGetElem_L(LinklistL,inti,ElemType&e){ Linklistp; intj; p=L->next;j=1; while(p&&j<i) { p=p->next; ++j; } if(!p||j>i) returnERROR; e=p->data; returnOK;} StatusListInsert_L(Linklist&L,inti,ElemTypee) { Linklistp,s; intj; p=L; j=0; while(p&&j<i-1) { p=p->next; ++j; } if(!p||j>i-1) ret