资源描述:
《实验二顺序表基本操作的实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验二顺序表基本操作的实现专业:10网络工程班级:10计本1班学号:姓名:实验地点:B102实验时间:2011-10-19指导教师:王润鸿【实验课程名称】数据结构【实验项目名称】链表基本操作的实现一、实验目的1掌握线性表链式存储基本操作;2学会设计实验数据验证程序。二、实验仪器及环境计算机,windowxp操作系统,VC++6.0三、实验内容及步骤四、线性表链式存储基本操作存储结构定义:typedefstructLNode{ElemTypedata;structLNode*next;}LNode,*LinkList;实现的基本操作:In
2、itList(&L)操作结果:构造一个空的线性表L。DestroyList(&L) 初始条件:线性表L已存在。 操作结果:销毁线性表L。ListEmpty(L) 初始条件:线性表L已存在。 操作结果:若L为空表,则返回TRUE,否则返回FALSE。ListLength(L10) 初始条件:线性表L已存在。 操作结果:返回L中元素个数。PriorElem(L,cur_e,&pre_e) 初始条件:线性表L已存在。 操作结果:若cur_e是L中的数据元素,则用pre_e返回它的前驱,否则操作失败,pre_e无
3、定义。NextElem(L,cur_e,&next_e) 初始条件:线性表L已存在。 操作结果:若cur_e是L中的数据元素,则用next_e返回它的后继,否则操作失败,next_e无定义。GetElem(L,i,&e) 初始条件:线性表L已存在,1≤i≤LengthList(L)。 操作结果:用e返回L中第i个元素的值。LocateElem(L,e,compare()) 初始条件:线性表L已存在,compare()是元素判定函数。 操作结果:返回L中第1个与e满足关系compare()的元素的位序。若这样的元素
4、不存在,则返回值为0。ListTraverse(L,visit()) 初始条件:线性表L已存在,visit()为元素的访问函数。 操作结果:依次对L的每个元素调用函数visit()。 一旦visit()失败,则操作失败。ClearList(&L) 初始条件:线性表L已存在。 操作结果:将L重置为空表。PutElem(&L,i,&e) 初始条件:线性表L已存在,1≤i≤LengthList(L)。 操作结果:L中第i个元素赋值同e的值。ListInsert(&L,i,e) 初始条件:线性表L10已存在,
5、1≤i≤LengthList(L)+1。 操作结果:在L的第i个元素之前插入新的元素e,L的长度增1。ListDelete(&L,i,&e) 初始条件:线性表L已存在且非空,1≤i≤LengthList(L)。 操作结果:删除L的第i个元素,并用e返回其值,L的长度减1。一、实验记录#include"iostream.h"#include"stdlib.h"/*定义ElemType为int类型*/typedefintElemType;#defineTRUE1#defineERROR0#defineFALSE0#defineO
6、K1#defineNULL0#defineflag-1/*单链表的结点类型*/typedefstructLNode{ElemTypedata;structLNode*next;}LNode,*LinkList;/*初始化单链表*/LinkListInitList(LinkList&L){10L=(LinkList)malloc(sizeof(LNode));L->next=NULL;returnL;}/*清空单链表*/voidClearList(LinkListL){L->next=NULL;}/*检查单链表是否为空*/intListE
7、mpty(LinkListL){if(L->next==NULL)returnTRUE;elsereturnFALSE;}/*遍历单链表*/voidListTraverse(LinkListL){LinkListp=(LinkList)malloc(sizeof(LNode));p=L->next;while(p!=NULL){cout<data<<'';p=p->next;}cout<next;j=0;
8、while(p!=NULL){j++;p=p->next;}returnj;}//得到链表的指定值intGetElem(LinkListL,inti){LinkListp;intj;p=L->next;j=