文档详情

长沙理工线性表的链式表示和实现.doc

发布:2025-01-17约3.2千字共5页下载文档
文本预览下载声明

数学与计算科学学院

实验报告

实验工程名称线性表的链式表示和实现

所属课程名称数据结构A

实验类型验证型

实验日期2013年10月31日

班级信计1201

学号201253100xxx

姓名xxx

成绩

一、实验概述:

【实验目的】

线性表的逻辑结构特征:总存在第一个和最后一个元素,除第一个元素以外,每个元素存在唯一一个直接前驱元素,除最后一个元素以外,每一个元素总存在唯一一个直接后继元素。

掌握单链表的根本操作在链式存储结构上的实现。

【实验原理】

〔1〕链表的特点:是一种动态分配数据结构,每一个结点的值域指向其直接后继结点〔尾结点除外〕,指针为数据元素之间的逻辑关系的映像,逻辑上相邻的两个数据元素其存储的物理位置不相邻,由此这种存储结构为非顺序映像或链式映像。〔2〕链表的类c语言表示

//线性表的单链表存储结构

typedefstructLNode

{ElemTypedata;

Struct*next;

}LNode,*LinkList;

【实验环境】

VC++6.0

二、实验内容:

【实验方案】

编写主函数,调用数据表,初始化建空表,插入和删除算法,调试运行,得出结果,进行分析。

【实验过程】〔实验步骤、记录、数据、分析〕

依次把课本上面的算法〔建立带表头的线性单链表插入删除和查找算法〕写在程序里,然后编写主函数接下来调试,分析错误产生的原因,再依次解决,运行该程序,最后输入适宜的数,校验程序的正确性。

【实验结论】〔结果〕

【实验小结】〔收获体会〕

这次实验效果要比上一次好,因为上次程序中出现的错误大多都不知道如何去调试改正,都靠老师和同学才得以解决。明显这次的有些错误自己就能解决,心里有些许的成就感。这一次的这个实验我觉得比上次难一点,主要是主函数老师没有给我们,编写的时候确实棘手,我直接把上次的主函数给复制粘贴但是怎么改也不对,还好把老师的主函数写下之后才调试运行得到结果。我在这次编写程序中,我了解了自己某些方面的缺乏,所以在以后的学习中,弥补我缺乏之处。

三、指导教师评语及成绩:

评语

评语等级

及格

不及格

1.实验报告按时完成,字迹清楚,文字表达流畅,逻辑性强

2.实验方案设计合理

3.实验过程〔实验步骤详细,记录完整,数据合理,分析透彻〕

4实验结论正确.

成绩:

指导教师签名:

批阅日期:

附录1:源程序

#includestdio.h

#includestdlib.h

#defineTRUE1

#defineFALSE0

#defineOK1

#defineERROR0

#defineINFEASIBLE-1

#defineOVERFLOW-2

typedefintElemType;

typedefintStatus;

typedefstructLNode{

ElemTypedata;

structLNode*next;

}LNode,*LinkList;

voidCreateList_L(LinkListL,intn)

//逆位序输入n个元素的值,建立带头结点的单链线性表L

{inti;LinkListp;

L=(LinkList)malloc(sizeof(LNode));

L-next=NULL;//先建立一个带头结点的单链表

for(i=n;i0;--i){

p=(LinkList)malloc(sizeof(LNode));//生成新节点

scanf(%d,p-data);//输入元素值

p-next=L-next;L-next=p;//插入到表头

}

}

StatusGetElem_L(LinkListL,inti,ElemTypee)

//L为带头结点的单链表的头指针

//当第i个元素存在时,其值赋给e并返回OK,否那么返回ERROR

{LinkListp;intj;

p=L-next;j=1;//初始化,p指向第一个结点

显示全部
相似文档