数据结构实验指导书

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据结构实验指导书南京工程学院经济管理学院

一、实验教学目标与基本要求

使学生熟练地掌握常用数据结构的基本概念、逻辑结构、存储结构及运算操作(相关算法的设计);熟悉这些数据结构在计算机科学与技术中的基本应用;为其它相关专业课程的学习打下坚实的基础。

二、本实验课程的基本理论与实验技术知识

基本理论:数据的逻辑结构和物理结构之,数据结构和数据类型;数据结构基本原理、重要算法、高级语言编程。基本数据结构的概念、特点、存储结构,基本数据结构的运算及算法设计。

实验技术:计算机语言的应用、相关计算机技术。

三、实验方法、特点与基本要求

实验必须循序渐进地进行,不能急躁冒进。很多实验内容需要的基础知识比较多,所以实验准备尤其需要下功夫,只有这样才能理清实验的目的、要求,列出实验的步骤,对可能出现的问题有充分的准备。

实验前必须明确实验目的,理解实验原理;了解实验环境;了解实验方法,拟定实验的操作步骤。实验过程中需认真观察,详细记录实验结果。实验后通过对实验记录的整理,从理论上加以分析归纳,以加深对所学理论知识的理解,不断总结、积累经验,从而提高动手能力。

上机操作,要求独立完成全部实验作业,并与实验课结束前提交。

四、实验主要仪器设备

1.服务器:MS-Windows NT/2000;

2.数据库:MS-SQL Server、Access等;

3.软件:C语言等;

五、实验项目的设置与内容提要

实验设置:(共8个,其中链表的插入和删除操作是必做,其它可选)。必做实验必须提交实验报告,可选实验可以提交实验报告,实验报告的形式由上课教师制定。

实验1:顺序表基本操作

一、实验目的

1.学会定义线性表的顺序存储类型,实现C程序的基本结构,对线性表

的一些基本操作和具体的函数定义。

2.掌握顺序表的基本操作,实现顺序表的插入、删除、查找以及求并集

等运算。

3.掌握对多函数程序的输入、编辑、调试和运行过程。

二、实验要求

1.预习C语言中结构体的定义与基本操作方法。

2.对顺序表的每个基本操作用单独的函数实现。

3.编写完整程序完成下面的实验内容并上机运行。

4.整理并上交实验报告。

三、实验内容:

1.编写程序实现顺序表的下列基本操作:

(1)初始化顺序表La。

(2)将La置为空表。

(3)销毁La。

(4)在La中插入一个新的元素。

(5)删除La中的某一元素。

(6)在La中查找某元素,若找到,则返回它在La中第一次出现的位置,

否则返回0。

(7)打印输出La中的元素值。

2.编写程序完成下面的操作:

(1)构造两个顺序线性表La和Lb,其元素都按值非递减顺序排列。

(2)实现归并La和Lb得到新的顺序表Lc,Lc的元素也按值非递减顺序排列。

(3)假设两个顺序线性表La和Lb分别表示两个集合A和B,利用

union_Sq操作实现A=A∪B。

四、思考与提高

假设两个顺序线性表La和Lb分别表示两个集合A和B,如何实现A=A ∩B ?

实验2:单链表基本操作

一、实验目的

1.学会定义单链表的结点类型,实现对单链表的一些基本操作和具体

的函数定义,了解并掌握单链表的类定义以及成员函数的定义与调用。

2.掌握单链表基本操作及两个有序表归并、单链表逆置等操作的实现。

二、实验要求

1.预习C语言中结构体的定义与基本操作方法。

2.对单链表的每个基本操作用单独的函数实现。

3.编写完整程序完成下面的实验内容并上机运行。

4.整理并上交实验报告。

三、实验内容

1.编写程序完成单链表的下列基本操作:

(1)初始化单链表La。

(2)在La中插入一个新结点。

(3)删除La中的某一个结点。

(4)在La中查找某结点并返回其位置。

(5)打印输出La中的结点元素值。

2 .构造两个带有表头结点的有序单链表La、Lb,编写程序实现将La、

Lb合并成一个有序单链表Lc。

合并思想是:程序需要3个指针:pa、pb、pc,其中pa,pb分别指向La表与Lb表中当前待比较插入的结点,pc 指向Lc表中当前最后一个结点。依次扫描La和Lb中的元素,比较当前元素的值,将较小者链接到*pc 之后,如此重复直到La或Lb结束为止,再将另一个链表余下的内容链接到pc所指的结点之后。

3.构造一个单链表L,其头结点指针为head,编写程序实现将L逆置。

(即最后一个结点变成第一个结点,原来倒数第二个结点变成第二个结点,如此等等。)

四、思考与提高

1.如果上面实验内容2中合并的表内不允许有重复的数据该如何操作?

2.如何将一个带头结点的单链表La分解成两个同样结构的单链表Lb,Lc,使得Lb中只含La表中奇数结点,Lc中含有La表的偶数结点?

实验3:顺序栈基本操作

一、实验目的

1.熟悉并能实现栈的定义和基本操作。

2.了解和掌握栈在递归和非递归算法的应用。

二、实验要求

1.进行栈的基本操作时要注意栈“后进先出”的特性。

2.编写完整程序完成下面的实验内容并上机运行。

3.整理并上交实验报告。

三、实验内容

1.编写程序任意输入栈长度和栈中的元素值,构造一个顺序栈,对其进行清空、销毁、入栈、出栈以及取栈顶元素操作。

2.编写程序实现表达式求值,即验证某算术表达式的正确性,若正确,则计算该算术表达式的值。

主要功能描述如下:

1、从键盘上输入表达式。

2、分析该表达式是否合法:

(1)是数字,则判断该数字的合法性。若合法,则压入数据到堆栈中。

(2)是规定的运算符,则根据规则进行处理。在处理过程中,

相关文档
最新文档