数据结构上机实验报告-单链表的实现

数据结构上机实验报告-单链表的实现

ID:6361577

大小:753.00 KB

页数:52页

时间:2018-01-11

数据结构上机实验报告-单链表的实现_第1页
数据结构上机实验报告-单链表的实现_第2页
数据结构上机实验报告-单链表的实现_第3页
数据结构上机实验报告-单链表的实现_第4页
数据结构上机实验报告-单链表的实现_第5页
资源描述:

《数据结构上机实验报告-单链表的实现》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、华东交通大学软件学院上机/实验报告册专业____________________________班级____________________________姓名____________________________课程名称____________________________教师____________________________学期____________________________软件学院上机实验报告备注:学生应根据实验的要求,设计一个实验过程(包括程序代码、各种定义说明),并根据实验的结论及实验过程中出现的情况(错误、异常等)得出的体会。要求学生

2、每人一台计算机,独立完成实验的全过程。实验题目:单链表的实现实验目的:1.掌握单链表的逻辑结构2.掌握单链表的存储结构和结构特点3.掌握单链表基本操作的实现和指针的操作4.了解单链表基本操作的效率和特点实验要求:1.线性表的抽象数据类型2.单链表存储结构的C++语言定义3.单链表基本操作的实现:⑴初始化⑵销毁⑶创建⑷获取元素⑸插入⑹删除4.单链表的使用5.实验结果实验内容:1.线性表的抽象数据类型ADT线性表(List)Data线性表的数据对象集合为{a1,a2,……,an},每个元素的类型均为DataType。其中,除第一个元素a1外,每一个元素有且只有一个直接

3、前驱元素,除了最后一个元素外,每一个元素有且只有一个直接后继元素。数据元素之间的关系是一对一的关系。OperationInitList(*L):初始化操作,建立一个空的线性表L。ListEmpty(L):若线性表为空,返回ture,否则返回false。ClearList(*L):将线性表清空。GetElem(L,i,*e):将线性表L中的第i个元素值返回给e。LocateElem(L,e):在线性表L中查找与给定值e相等的元素,如果查找成功,返回该元素在表中序号表示成功;否则,返回0表示失败。1.单链表存储结构的C++定义:/*线性表的单链表存储结构*/typed

4、efstructNode{Elemtypedata;StructNode*next;}Node;Node*Linklist;/*定义Linklist*/3.单链表基本操作的实现:㈠初始化:InitList(*L){L=(LinkList)malloc(sizeof(LinkList))L->next=NULLreturnL;}㈡销毁:/*初始条件:线性表L已存在;操作结果:将L重置为空表*/StatusClearList(LinkList*L){LinkListp,q;p=(*L)->next;While(p){q=p->next;free(p);p=q;}(*L

5、)->next=NULL;returnOK;}㈢创建:/*随机产生n个元素的值,建立带头结点的单链表L(头插法)*/VoidCreateListHead(LinkList*L,intn){LinkListp;intI;srand(time(0));*L=(LinkList)malloc(sizeof(Node));(*L)->next=NULL;For(i=0,idata=rand()%100+1;p->next=(*L)->next;(*L)->next=p;}}㈠获取元素:

6、/*初始条件:顺序线性表L已存在,1≤i≤ListLength(L)*//*操作结果:用e返回L中第i个数据元素的值*/StatusGetElem(LinkListL,inti,ElemType*e){intj;LinkListp;p=L->next;j=1;while(!p==NULL&&jnext;++j;}if(!p

7、

8、j>i)returnERROR;*e=p->data;returnOK;}㈡插入:/*初始条件:线性表L已存在,1≤i≤ListLength(L)*//*操作结果:在L中第i个位置之前插入新的数据元素e,L长度加1*/Sta

9、tusListInsert(LinkList*L,inti,ElemTypee){intj;LinkListp,s;p=*Lj=1;while(p&&jnext;++j;}If(!p

10、

11、j>i)returnERROR;s=(LinkList)malloc(sizeof(Node));s->data=e;s->next=p->next;p->next=s;returnOK;}㈢删除:/*初始条件:线性表L已存在,1≤i≤ListLength(L)*//*操作结果:删除L的第i个数据元素,并用e返回其值,L长度减1*/StatusListDelete

12、(Link

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。