实验B01: 顺序表的操作实验
一、实验目的
1.掌握线性表的顺序存储结构的表示和实现方法。 2.掌握顺序表基本操作的算法实现。 3.了解顺序表的应用。 二、实验内容
1.建立顺序表。
2.在顺序表上实现插入、删除和查找操作(验证性内容)。 3.删除有序顺序表中的重复元素(设计性内容)。
4.完成一个简单学生成绩管理系统的设计(应用性设计内容)。 三、设计性实验
编程实现删除有序顺序表中的所有重复元素,即使有序顺序表中相同的元素只保留一个。
1. 实验要求
⑴ 根据输入的n个非递减的有序数据建立一个有序顺序表,并输出有序顺序表中各元素值。
⑵ 删除有序顺序表中所有的重复元素,并显示删除后的有序顺序表中各元素值。 四、应用性设计实验
编程实现一个简单学生成绩管理系统的设计。 实验要求
此系统的功能包括:
① 查询:按特定的条件查找学生
② 修改:按学号对某个学生的某门课程成绩进行修改 ③ 插入:增加新学生的信息
④ 删除:按学号删除已退学的学生的信息。 学生成绩表的数据如下:
学号 2008001 2008002 2008003 2008004 2008006 2008006 姓名 Alan Danie Helen Bill Peter Amy 性别 F M M F M F 大学英语 高等数学 93 75 56 87 79 68 88 69 77 90 86 75 要求采用顺序存储结构来实现对上述成绩表的相关操作。 五、实验心得:
1
实验B02: 链表的操作实验
一、实验目的
1.掌握线性表的链式存储结构的表示和实现方法。 2.掌握链表基本操作的算法实现。 二、实验内容
1.建立单链表,并在单链表上实现插入、删除和查找操作(验证性内容)。 2.建立双向链表,并在双向链表上实现插入、删除和查找操作(设计性内容)。 3.计算已知一个单链表中数据域值为一个指定值x的结点个数(应用性设计内容)。 三、设计性实验
编程实现在双向循环链表上的插入和删除操作 1. 实验要求
(1)输入链表的长度和各元素的值,用尾插法建立双向循环链表,并输出链表中各元素值,观察输入的内容与输出的内容是否一致。
(2)在双向循环链表的第i个元素之前插入一个值为x的元素,并输出插入后的链表中各元素值。
(3)删除双向循环链表中第i个元素,并输出删除后的链表中各元素值。
(4)在双向循环链表中查找值为x元素,如果查找成功,则显示该元素在链表中的位序号,否则显示该元素不存在。 四、应用性设计实验
编写一个程序,计算出一个单链表中数据域值为一个指定值x的结点个数。 实验要求:
⑴ 从键盘输入若干个整数,以此序列为顺序建立一个不带头结点的单链表; ⑵ 输出此单链表中的各个数据元素值;
⑶ 给定一个x的具体整数值,计算并返回此单链表中数据域值为x的结点个数值。 五、实验心得:
2
实验B03: 栈的操作实验
一、实验目的
1.掌握栈的存储结构的表示和实现方法。 2.掌握栈的入栈和出栈等基本操作算法实现。 3.了解栈在解决实际问题中的简单应用。 二、实验内容
1.建立顺序栈,并在顺序栈上实现入栈和出栈操作(验证性内容)。 2.建立链栈,并在链栈上实现入栈和出栈操作(设计性内容)。 3.实现汉诺(Hanoi)塔求解问题(应用性设计内容)。 三、设计性实验
编程实现链栈的入栈和出栈操作。 1.实验要求
(1)根据输入的栈中元素个数和各元素值建立一个链栈,并输出链栈中各元素值, 观察输入的内容与输出的内容是否一致,特别注意栈顶元素的位置。
(2)将数据元素e入栈,并输出入栈后的链栈中各元素值。
(3)将链栈中的栈顶元素出栈,并输入出栈元素的值和出栈后链栈中各元素值。 四、应用性设计实验
编程实现汉诺(Hanoi)塔求解问题。 1.实验要求
假设有三个命名为X、Y和Z的塔座,在塔座X上插有n个直径大小各不相同且从小到大编号为1,2,……,n的圆盘。现要求将塔座X上的n个圆盘借助于塔座Y移至塔座Z上,并仍按同样顺序叠排。圆盘移动时必须遵循下列规则:
① 每次只能移动一个圆盘;
② 圆盘可以插在X、Y和Z中的任何一个塔座上; ③ 任何时刻都不能将一个较大的圆盘压在较小的圆盘上。
五、实验心得:
3
实验B04: 队列的操作实验
一、实验目的
1.掌握队列存储结构的表示和实现方法。 2.掌握队列的入队和出队等基本操作的算法实现。 3.了解队列在解决实际问题中的简单应用。 二、实验内容
1.建立循环顺序队列,并在循环顺序队列上实现入队、出队基本操作(验证性内容)。 2.建立循环链队列,并在循环链队列上实现入队、出队基本操作(设计性内容)。 3.设计一个程序模仿操作系统的进程管理问题(应用性设计内容)。 三、设计性实验
编程实现对循环链队列的入队和出队操作。 1.实验要求
⑴根据输入的队列长度n和各元素值建立一个带头结点的循环链表表示的队列(循环链队列),并且只设一个尾指针来指向尾结点,然后输出队列中各元素值。
⑵将数据元素e入队,并输出入队后的队列中各元素值。
⑶将循环链队列的队首元素出队,并输出出队元素的值和出队后队列中各元素值。 四、应用性设计实验
编程实现模仿操作系统的进程管理问题。 1.问题描述
操作系统中采用一个优先队列来管理进程。当优先级队列中有多个进程排队等待系统响应时,只要CPU空闲,进程管理系统就会从优先队列中找出优先级最高的进程首先出队并占有CPU资源,即按进程服务的优先级,优先级高的先服务;优先级相同的按先到先服务的原则进行管理。
五、实验心得:
4
实验B05: 二叉树的操作实验
一、实验目的
1.理解二叉树的类型定义与性质。
2.掌握二叉树的二叉链表存储结构的表示和实现方法。 3.掌握二叉树遍历操作的算法实现。 4.熟悉二叉树遍历操作的应用。 二、实验内容
1.建立二叉树的二叉链表存储结构。
2.实现二叉树的先根、中根和后根三种遍历操作(验证性内容)。
3.应用二叉树的遍历操作来实现判断两棵二叉树是否相等的操作(设计性内容)。 4.求从二叉树根结点到指定结点p之间的路径(应用性设计内容)。 三、设计性实验
编程实现根据二叉树的先序遍历序列和中序遍历序列来建立两棵二叉树,并判断这两棵二叉树是否相等。
1. 实验要求
⑴ 假设二叉树的结点值是字符,请分别根据输入的两棵二叉树的先根遍历序列和中根遍历序列来建立二叉链表表示的两棵二叉树。
⑵ 分别利用先根、中根和后根遍历方法来实现判断两棵二叉树是否相等的操作。 ⑶ 主程序中要求设计一个菜单,允许用户通过菜单来多次选择执行利用哪一种遍历方法来判断两棵二叉树是否相等。 四、设计性实验
编程求从二叉树根结点到到指定结点p之间的路径。 1. 实验要求
⑴ 假设二叉树的结点值是字符,请根据输入的二叉树后序遍历序列和中序遍历序列来建立二叉链表表示的二叉树,并对其进行某种遍历,输出遍历序列以验证建立的二叉树是否正确。
⑵ 任意给定一结点p,输出从二叉树的根结点到该结点p的路径。
五、实验心得:
5
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库数据库实验报告大全在线全文阅读。
相关推荐: