//将第i+1个元素及其之后的所有元素前移一个位地置
L.getListElem()[j-1]=L.getListElem()[j];
L.setCurLen(L.getCurLen()-1);//有序顺序表的表长减1
}
else
i++;
}
结果:
八、应用性设计实验
编程实现一个简单学生成绩管理系统的设计。
实验要求
此系统的功能包括:
1查询:
按特定的条件查找学生
2修改:
按学号对某个学生的某门课程成绩进行修改
3插入:
增加新学生的信息
4删除:
按学号删除已退学的学生的信息。
学生成绩表的数据如下:
学号
姓名
性别
大学英语
高等数学
Alan
F
93
88
Danie
M
75
69
Helen
M
56
77
Bill
F
87
90
Peter
M
79
86
Amy
F
68
75
要求采用顺序存储结构来实现对上述成绩表的相关操作。
截图
实验心得:
实验二链表的操作实验
一、实验名称和性质
所属课程
数据结构
实验名称
链表的操作
实验学时
4
实验性质
√验证□综合√设计
必做/选做
√必做□选做
二、实验目的
1.掌握线性表的链式存储结构的表示和实现方法。
2.掌握链表基本操作的算法实现。
三、实验内容
1.建立单链表,并在单链表上实现插入、删除和查找操作(验证性内容)。
2.建立双向链表,并在双向链表上实现插入、删除和查找操作(设计性内容)。
3.计算已知一个单链表中数据域值为一个指定值x的结点个数(应用性设计内容)。
四、实验的软硬件环境要求
硬件环境要求:
PC机(单机)
使用的软件名称、版本号以及模块:
Netbeans6.5以上或Eclipse、MyEclipse等编程环境下。
五、知识准备
前期要求熟练掌握了Java语言的编程规则、方法和单链表和双向链表的基本操作算法。
六、验证性实验
运行结果参考如图4-1所示:
七、设计性实验
两个一元多项式的相乘P54-55
截图:
八、应用性设计实验
编写一个程序,计算出一个单链表中数据域值为一个指定值x的结点个数。
实验要求:
⑴从键盘输入若干个整数,以此序列为顺序建立一个不带头结点的单链表;
⑵输出此单链表中的各个数据元素值;
⑶给定一个x的具体整数值,计算并返回此单链表中数据域值为x的结点个数值。
截图
实验心得:
实验三栈和队列的操作实验
一、实验名称和性质
所属课程
数据结构
实验名称
栈和队列的操作
实验学时
4
实验性质
√验证□综合√设计
必做/选做
√必做□选做
二、实验目的
1.掌握栈和对的存储结构的表示和实现方法。
2.掌握栈的入栈和出栈等基本操作算法实现。
3.了解栈在解决实际问题中的简单应用。
三、实验内容
1.建立顺序栈,并在顺序栈上实现入栈和出栈操作(验证性内容)。
2.建立链栈,并在链栈上实现入栈和出栈操作(设计性内容)。
3.实现汉诺(Hanoi)塔求解问题(应用性设计内容)。
四、实验的软硬件环境要求
硬件环境要求:
PC机(单机)
使用的软件名称、版本号以及模块:
Netbeans6.5以上或Eclipse、MyEclipse等编程环境下。
五、知识准备
前期要求熟练掌握了Java语言的编程规则、方法和顺序栈、链栈的基本操作算法。
六、验证性实验
实验截图
七、设计性实验
P1114-1,4-3,4-4,4-5,4-10
截图:
4-1
4-3
4-4
4-5
4-10
八、应用性设计实验
编程实现汉诺(Hanoi)塔求解问题。
1.实验要求
假设有三个命名为X、Y和Z的塔座,在塔座X上插有n个直径大小各不相同且从小到大编号为1,2,……,n的圆盘。
现要求将塔座X上的n个圆盘借助于塔座Y移至塔座Z上,并仍按同样顺序叠排。
圆盘移动时必须遵循下列规则:
①每次只能移动一个圆盘;
②圆盘可以插在X、Y和Z中的任何一个塔座上;
③任何时刻都不能将一个较大的圆盘压在较小的圆盘上。
截图:
实验心得:
实验四二叉树的遍历实验
一、实验名称和性质
所属课程
数据结构
实验名称
二叉树的操作
实验学时
4
实验性质
√验证□综合√设计
必做/选做
√必做□选做
二、实验目的
1.理解二叉树的类型定义及性质。
2.掌握二叉树的二叉链表存储结构的表示和实现方法。
3.掌握二叉树遍历操作的算法实现。
4.熟悉二叉树遍历操作的应用。
三、实验内容
1.建立二叉树的二叉链表存储结构。
2.实现二叉树的先根、中根和后根三种遍历操作(验证性内容)。
3.应用二叉树的遍历操作来实现判断两棵二叉树是否相等的操作(设计性内容)。
4.求从二叉树根结点到指定结点p之间的路径(应用性设计内容)。
四、实验的软硬件环境要求
硬件环境要求:
PC机(单机)
使用的软件名称、版本号以及模块:
Netbeans6.5以上或Eclipse、MyEclipse等编程环境下。
五、知识准备
前期要求掌握二叉树的二叉链表的存储结构表示和三种遍历操作算法。
六、验证性实验
4.运行结果
七、设计性实验
编程实现根据二叉树的先序遍历序列和中序遍历序列来建立两棵二叉树,并判断这两棵二叉树是否相等。
1.实验要求
⑴假设二叉树的结点值是字符,请分别根据输入的两棵二叉树的先根遍历序列和中根遍历序列来建立二叉链表表示的两棵二叉树。
⑵分别利用先根、中根和后根遍历方法来实现判断两棵二叉树是否相等的操作。
⑶主程序中要求设计一个菜单,允许用户通过菜单来多次选择执行利用哪一种遍历方法来判断两棵二叉树是否相等。
截图:
实验心得:
实验五二叉排序树的查找操作
一、实验名称和性质
所属课程
数据结构
实验名称
二叉排序树的操作
实验学时
4
实验性质
√验证□综合√设计
必做/选做
√必做□选做
二、实验目的
1.掌握二叉排序树的含义及其在计算机中的存储实现。
2.掌握在二叉排序树上查找操作的算法实现。
3.掌握二叉排序树的插入、删除操作的算法实现。
三、实验内容
1.建立二叉排序树。
2.在二叉排序树上实现对给定值进行查找操作(验证性内容)。
四、实验的软硬件环境要求
硬件环境要求:
PC机(单机)
使用的软件名称、版本号以及模块:
Netbeans6.5以上或Eclipse、MyEclipse等编程环境下。
五、知识准备
前期要求掌握二叉排序树的含义、二叉排序树上的查找算法和二叉排序上的插入、删除操作的算法。
六、验证性实验
运行结果:
七、设计性实验
编程判断一棵二叉树是否为二叉排序树。
1.实验要求
⑴二叉树采用二叉链表作为存储结构,且树中结点的关键字均不相同。
⑵要输出最后的判断结果。
截图:
实验心得:
实验六图的操作实验
一、实验名称和性质
所属课程
数据结构
实验名称
图的操作
实验学时
4
实验性质
√验证□综合√设计
必做/选做
□必做√选做
二、实验目的
1.掌握图的相关概念。
2.掌握用邻接矩阵和邻接表的方法描述图的存储结构。
3.掌握图的深度优先搜索和广度优先搜索遍历的方法及其计算机的实现。
4.理解最小生成树的有关算法
三、实验内容
1.用邻接表作为图的存储结构建立一个图,并对此图分别进行深度优先搜索和广度优先搜索遍历(验证性内容)。
2.用邻接矩阵作为图的存储结构建立一个网,并构造该网的最小生成树(设计性内容)。
3.校园导游程序的实现(应用性设计内容)。
四、实验的软硬件环境要求
硬件环境要求:
PC机(单机)
使用的软件名称、版本号以及模块:
Netbeans6.5以上或Eclipse、MyEclipse等编程环境下。
五、知识准备
前期要求掌握图及网的含义、图的邻接矩阵和邻接表的存储表示、图的深度优先搜索遍历和广度优先搜索遍历方法、最小生成树的概念及其构造算法。
六、验证性实验
运行结果
七、设计性实验
用邻接矩阵作为图的存储结构建立一个网,并构造该网的最小生成树。
截图
实验心得:
实验七查找操作实验
一、实验名称和性质
所属课程
数据结构
实验名称
查找操作
实验学时
4
实验性质
√验证□综合√设计
必做/选做
√必做□选做
二、实验目的
1.掌握顺序查找操作的算法实现。
2.掌握二分查找操作的算法实现及实现该查找的前提。
3.掌握哈希查找操作的算法实现。
三、实验内容
1.建立顺序查找表,并在此查找表上实现顺序查找操作(验证性内容)。
2.建立有序顺序查找表,并在此查找表上实现二分查找操作(验证性内容)。
3.建立索引查找表,并在此查找表上实现索引查找操作(设计性内容)。
四、实验的软硬件环境要求
硬件环境要求:
PC机(单机)
使用的软件名称、版本号以及模块:
Netbeans6.5以上或Eclipse、MyEclipse等编程环境下。
五、知识准备
前期要求掌握查找的含义和顺序查找、二分查找及索引查找操作的方法。
六、验证性实验
(一)运行结果。
运行结果
(二)哈希表操作
1.实验要求
运行结果
实验心得:
实验八排序操作实验
一、实验名称和性质
所属课程
数据结构
实验名称
排序操作
实验学时
4
实验性质
√验证□综合√设计
必做/选做
√必做□选做
二、实验目的
1.熟悉并掌握各种排序方法的设计思路。
2.掌握各种具体排序算法在计算机上的实现。
3.掌握各种排序方法的性能比较。
三、实验内容
1.比较用直接插入排序、冒泡排序和简单选择排序方法进行排序时对关键字的比较次数和移动次数(验证性内容)。
2.希尔排序、归并排序和快速排序算法的实现(设计性内容)。
四、实验的软硬件环境要求
硬件环境要求:
PC机(单机)
使用的软件名称、版本号以及模块:
Netbeans6.5以上或Eclipse、MyEclipse等编程环境下。
五、知识准备
前期要求掌握排序的含义、各种排序的方法及其性能指标分析。
六、验证性实验
运行结果
七、设计性实验
设一列关键字为{3,17,12,61,8,70,97,75,53,26,54,61},分别实现直接插入排序,希尔排序、冒泡排序、快速排序、选择排序和归并排序
截图
实验心得: