《数据结构》
实验指导手册
计算机教研室
1.实验教学的目的:通过实验,加深对算法与数据结构基本知识的理解,掌握数据结构的理论和设计技术及其使用,培养学生数据结构的设计、开发能力。
2.实验教学的要求:学生每次实验前必须根据实验指导手册,设计出实验方案(程序和实验步骤);在实验过程中要求独立进行程序调试和排错,必须学会使用在线帮助解决实验中遇到的问题,必须应用理论知识分析问题、解决问题。
3.实验内容:
实验1:VC6的使用
一、实验目的
理解和掌握如何使用Visual C++环境编写C/C++程序。
二、实验环境
装有Visual C++的计算机。 本次实验共计4学时。
三、实验内容 1、熟悉VC6环境
掌握如何创建控制台应用程序。
掌握一些常用快捷键,例如编译F7,运行Ctrl+F5,调试运行F5,单步运行F10/F11,设置断点F9,格式化代码Alt+F8。
2、掌握如何编译程序
理解编译过程中的错误信息,并掌握如何排错。
3、掌握如何调试程序
掌握如何通过设置断点来单步调试程序,如何查看当前变量的值。
4、实验题:
完成实验教材的实验题、、。要求:
实现该实验结果。通过该实验题,熟悉VC6环境下的程序编写、编译、调试。
实验2:顺序表基本运算
一、实验目的
(1)掌握顺序表的各种基本运算的实现。 (2)能够利用基本运算进行顺序表的操作。
二、实验环境
装有Visual C++的计算机。 本次实验共计2学时。
三、实验内容 1、顺序表基本运算
实现顺序表的各种基本运算;并在此基础上设计一个主程序,完成如下功能: (1) 初始化顺序表L(元素类型为char型) (2) 依次采用尾插法插入a, b, c, d, e元素 (3) 输出顺序表L
(4) 输出顺序表L的长度 (5) 判断顺序表L是否为空 (6) 输出顺序表L的第3个元素 (7) 输出元素’a’ 的位置
(8) 在第4个元素位置上插入’f’元素 (9) 输出顺序表L
(10) 删除顺序表L的第3个元素 (11) 输出顺序表 (12) 释放顺序表
提示:可以参考上课教材、实验教材的实验题。
2、顺序表的应用(选做)
(1)设计通讯录(也可为其他应用)文件的存储格式和线性表的顺序存储结构 (2)设计在通讯录(也可为其他应用)中添加、删除、查找某个节点信息程序 (3)调试程序
实验3:单链表基本运算
一、实验目的
(1)掌握链表的概念;掌握单链表的各种基本运算的实现。 (2)能够利用基本运算进行单链表的操作。
(3)加深对链式存储数据结构的理解,逐步培养解决实际问题的编程能力。
二、实验环境
装有Visual C++的计算机。 本次实验共计2学时。
三、实验内容
实现单链表的各种基本运算;并在此基础上设计一个主程序,完成如下功能: (1) 初始化单链表L
(2) 依次采用尾插法插入a, b, c, d, e元素 (3) 输出单链表L
(4) 输出单链表L的长度 (5) 判断单链表L是否为空 (6) 输出单链表L的第3个元素 (7) 输出元素’a’ 的位置
(8) 在第4个元素位置上插入’f’元素 (9) 输出单链表L
(10) 删除单链表L的第3个元素 (11) 输出单链表L (12) 释放单链表L
提示:可以参考上课教材、实验教材的实验题。
实验4:单链表综合实验
一、实验目的
(1)能够利用单链表的基本运算进行单链表的相关操作。 (2)掌握文件的应用
(3)加深对链式存储数据结构的理解,逐步培养解决实际问题的编程能力。
二、实验环境
装有Visual C++的计算机。 本次实验共计4学时。
三、实验内容 1、通讯录设计
设计一个班级同学的通讯录,要求如下:
通讯录中每个同学的信息包含以下内容:学号(id)、姓名(name)、电话号码(tel)。如果需要更多其他信息,请自行添加。 程序主菜单包含以下几个功能:
(1) 添加记录:通过键盘输入信息,添加一条通讯录记录。 (2) 删除记录:通过键盘输入学号,删除该学号的记录。 (3) 输出记录:输出通讯录全部记录。
(4) 按姓名查找:通过键盘输入姓名,输出该同学的所有信息。 (5) 保存记录:把通讯录中所有的记录保存到文件中。 (6) 清空记录:删除通讯录中的全部记录,并删除文件。 (7) 退出 提示:
程序启动时应判断是否存在记录文件,如果存在,则读取每条记录到链表中。 用户选择并完成主菜单某功能后,除了退出程序,应该返回主菜单。 添加一条记录时,插入到链表的尾部。
查找、删除记录时,如果该记录不存在,则应该输出不存在的提示。 添加记录、删除记录时不需要写文件。 保存记录时,用覆盖写文件的方法。(或者先删除原文件,再保存全部记录信息) 各个功能模块写成函数,由主函数调用。 选做:
主菜单增加一个排序功能选项,可以按照学号从小到大进行排序。排序方法可以用冒泡排序或者插入排序。