资源描述:
《实验一顺序结构线性表基本操作的实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验一顺序结构线性表基本操作的实现专业:网络工程班级:10级1班学号:姓名:实验地点:B102实验时间:2011-9-14指导教师:王润鸿【实验课程名称】数据结构【实验项目名称】线性表基本操作的实现一、实验目的1掌握线性表顺序存储基本操作;2学会设计实验数据验证程序。二、实验仪器及环境计算机,windowxp操作系统,VC++6.0三、实验内容及步骤线性表顺序存储基本操作存储结构定义:#defineLIST_INIT_SIZE100//线性表存储空间的初始分配量#defineLISTINCREMENT1
2、0//线性表存储空间的分配增量typedefstruct{ElemType*elem;//存储空间基址intlength;//当前长度intlistsize;//当前分配的存储容量(以sizeof(ElemType)为单位)}SqList;实现的基本操作:InitList(&L)操作结果:构造一个空的线性表L。DestroyList(&L) 初始条件:线性表L已存在。 操作结果:销毁线性表L。ListEmpty(L) 初始条件:线性表L已存在。 操作结果:若L为空表,则返回TRUE,否则
3、返回FALSE。ListLength(L) 初始条件:线性表L已存在。 操作结果:返回L中元素个数。PriorElem(L,cur_e,&pre_e12) 初始条件:线性表L已存在。 操作结果:若cur_e是L中的数据元素,则用pre_e返回它的前驱,否则操作失败,pre_e无定义。NextElem(L,cur_e,&next_e) 初始条件:线性表L已存在。 操作结果:若cur_e是L中的数据元素,则用next_e返回它的后继,否则操作失败,next_e无定义。GetElem(
4、L,i,&e) 初始条件:线性表L已存在,1≤i≤LengthList(L)。 操作结果:用e返回L中第i个元素的值。LocateElem(L,e,compare()) 初始条件:线性表L已存在,compare()是元素判定函数。 操作结果:返回L中第1个与e满足关系compare()的元素的位序。若这样的元素不存在,则返回值为0。ListTraverse(L,visit()) 初始条件:线性表L已存在,visit()为元素的访问函数。 操作结果:依次对L的每个元素调用函数visit
5、()。 一旦visit()失败,则操作失败。ClearList(&L) 初始条件:线性表L已存在。 操作结果:将L重置为空表。PutElem(&L,i,&e) 初始条件:线性表L已存在,1≤i≤LengthList(L)。 操作结果:L中第i个元素赋值同e的值。ListInsert(&L,i,e) 初始条件:线性表L已存在,1≤i≤LengthList(L)+1。 操作结果:在L的第i个元素之前插入新的元素e,L的长度增1。ListDelete(&L,i,&e)
6、初始条件:线性表L已存在且非空,1≤i≤LengthList(L)。 操作结果:删除L的第i个元素,并用e返回其值,L的长度减1。一、实验记录#include#include#include#defineTRUE1#defineFALSE012#defineOK1#defineERROR0#defineINFEASIBLE-1#defineOVERFLOW-2typedefintStatus;typedefintElemType;#def
7、ineLIST_INIT_SIZE100//线性表存储空间的初始分配量#defineLISTINCREMENT10//线性表存储空间的分配增量typedefstruct{ElemType*elem;//存储空间基址intlength;//当前长度intlistsize;//当前分配的存储容量(以sizeof(ElemType)为单位)}SqList;StatusInitList_Sq(SqList&L);StatusListEmpty_Sq(SqListL);StatusDestroyList_Sq(S
8、qListL);StatusListLength_Sq(SqListL);StatusClearList_Sq(SqList&l);StatusGetElem_Sq(SqListL,inti,ElemType&e);StatusPriorElem_Sq(SqListL,ElemTypecur_e,ElemType&pre_e);StatusNextElem_Sq(SqListL,ElemTypecur_e,ElemType&next_e);