数据结构线性表的链式表示和实现的实习报告.doc

数据结构线性表的链式表示和实现的实习报告.doc

ID:51014459

大小:967.50 KB

页数:19页

时间:2020-03-17

数据结构线性表的链式表示和实现的实习报告.doc_第1页
数据结构线性表的链式表示和实现的实习报告.doc_第2页
数据结构线性表的链式表示和实现的实习报告.doc_第3页
数据结构线性表的链式表示和实现的实习报告.doc_第4页
数据结构线性表的链式表示和实现的实习报告.doc_第5页
资源描述:

《数据结构线性表的链式表示和实现的实习报告.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、数学与计算科学学院实验报告实验项目名称线性表的链式表示与实现所属课程名称数据结构实验类型验证型实验日期班级学号姓名成绩一、实验概述:【实验目的】1.掌握单链表的基本操作在链式存储结构上的实现。2.学会定义链式表的存储结构,学会用C++语言来实现链式表的基本操作,提高编程能力3.线性表的逻辑结构特征3.1以元素在计算机内“物理位置相邻”来表示线性表中数据元素之间的逻辑关系。3.2有且仅有一个开始结点,没有直接前驱,且仅有一个直接后继;有且仅有一个终结结点,没有直接后继,且仅有一个直接前驱。3.3其余内部结点都有且仅有一个直接前驱和一个直接后继。

2、【实验原理】1.线性链表的特点1.1动态分配的存储结构1.2每一个结点的指针域指向其直接后继元素的数据域,尾元结点除外1.3指针是数据元素之间的逻辑关系的映像2线性链表的类C语言表示typedefstructLNode{ElemTypedata;structLNode*next;}LNode,*LinkList;【实验环境】VC++6.0二、【实验内容】第17页【实验方案】编写主函数,调用链式表的存储结构初始化建表,插入和删除的算法,调试运行得出结果【实验过程】(实验步骤、记录、数据、分析)1.先将线性表的单链表存储结构与算法编入VC++6.

3、0中TypedefstructLNode{ElemTypedata;structLNode*next;}LNode,*LinkList;voidCreateList_L(LinkList&L,intn){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;}}StatusGetElem_L(LinkListL

4、,inti,ElemType&e){p=L->next;j=1;while(p&&jnext;++j;}第17页if(!p

5、

6、j>i)returnERROR;e=p->data;returnOK;}StatusListInsert_L(LinkList&L,inti,ElemTypee){p=L;j=0;while(p&&jnext;++j;}if(!p

7、

8、j>i-1)returnERROR;s=(LinkList)malloc(sizeof(LNode));s->data=e;s->next=p->n

9、ext;p->next=s;returnOK;}StatusListDelete_L(LinkList&L,inti,ElemType&e){p=L;j=0;while(p->next&&jnext;++j;}if(!p->next

10、

11、j>i-1)returnERROR;q=p->next;p->next=q->next;e=q->data;free(q);returnOK;}第17页1.调试第一次显示错误如下:原因:由于没有头文件及宏定义以及自定义,因此导致许多错误,可能还有许多错误没有显示3.将以下语句编入VC++6

12、.0中#include"stdio.h"#include"stdlib.h"#defineOK1#defineERROR0typedefintElemType;typedefintStatus;4.调试第二次显示错误如下:第17页原因:由于算法中许多变量没有定义,因此有许多错误3.将以下语句加入算法中:inti;LinkListp;(加入创建链表的算法中)LinkListp;intj;(加入查找元素的算法中)LinkListp,s;intj;(加入插入元素的算法中)LinkListp,q;intj;(加入删除元素的算法中)4.调试第三次显示没

13、有错误:5.现在开始编写主函数:(1)先编写调用创建链表的函数的主函数:如下:voidmain(){LinkListL;inti,n;scanf("%d",&n);CreateList_L(L,n);第17页for(i=n;i>0;--i)printf("%d",L->data);printf("");}调试显示为:运行显示为:产生了随机数说明for循环语句那里编写错误因此修改为:LinkListp;for(p=L->next;p!=NULL;p=p->next)printf("%d",p->data);调试显示为:运行显示为:第17页这

14、次正确了那么继续编写下面的其他主函数,形成的总的主函数为:voidmain(){LinkListL,p;inti,n;scanf("%d",&n);CreateLi

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

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

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