程序技术基础实验报告Word格式.docx
- 文档编号:16801269
- 上传时间:2022-11-26
- 格式:DOCX
- 页数:21
- 大小:1.53MB
程序技术基础实验报告Word格式.docx
《程序技术基础实验报告Word格式.docx》由会员分享,可在线阅读,更多相关《程序技术基础实验报告Word格式.docx(21页珍藏版)》请在冰豆网上搜索。
4.算法设计;
5.详细程序清单;
6.程序运行结果;
7.实验心得体会。
实验一顺序表的操作实验
一、实验名称和性质
所属课程
数据结构
实验名称
顺序表的操作
实验学时
4
实验性质
√验证□综合√设计
必做/选做
√必做□选做
二、实验目的
1.掌握线性表的顺序存储结构的表示和实现方法。
2.掌握顺序表基本操作的算法实现。
3.了解顺序表的应用。
三、实验内容
1.建立顺序表。
2.在顺序表上实现插入、删除和查找操作(验证性内容)。
3.删除有序顺序表中的重复元素(设计性内容)。
4.完成一个简单学生成绩管理系统的设计(应用性设计内容)。
七、设计性实验
编程实现删除有序顺序表中的所有重复元素,即使有序顺序表中相同的元素只保留一个。
1.实验要求
⑴根据输入的n个非递减的有序数据建立一个有序顺序表,并输出有序顺序表中各元素值。
⑵删除有序顺序表中所有的重复元素,并显示删除后的有序顺序表中各元素值。
2.核心算法提示
要在有序顺序表中删除重复的元素,首先就要抓住有序顺序表的特性:
重复的元素总是在相邻的位置上,如:
12,15,15,15,35,56,56,78。
则删除重复元素后所得的有序表为:
12,15,35,56,78。
下面给出大致的操作步骤:
从第0个元素开始,依次将它及后面相邻的元素进行比较,如果相等则将前面那个相等的元素从顺序表中删除;
如果不相等,则继续往下比较,如此重复,直到最后一个元素为止。
3.核心算法描述
//删除有序顺序表L中的所有重复元素,即使得有序顺序表中相同的元素只保留一个
publicstaticvoidremove_repeat(SqListL){
inti=0;
while(i<
L.getCurLen()-1)
if(L.getListElem()[i].equals(L.getListElem()[i+1])){
//如果第i个及第i+1个相邻元素值相等
for(intj=i+1;
j<
L.getCurLen();
j++)
//将第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
56
77
Bill
87
90
Peter
79
86
Amy
68
要求采用顺序存储结构来实现对上述成绩表的相关操作。
截图
实验心得:
实验二链表的操作实验
链表的操作
1.掌握线性表的链式存储结构的表示和实现方法。
2.掌握链表基本操作的算法实现。
1.建立单链表,并在单链表上实现插入、删除和查找操作(验证性内容)。
2.建立双向链表,并在双向链表上实现插入、删除和查找操作(设计性内容)。
3.计算已知一个单链表中数据域值为一个指定值x的结点个数(应用性设计内容)。
四、实验的软硬件环境要求
硬件环境要求:
PC机(单机)
使用的软件名称、版本号以及模块:
Netbeans6.5以上或Eclipse、MyEclipse等编程环境下。
五、知识准备
前期要求熟练掌握了Java语言的编程规则、方法和单链表和双向链表的基本操作算法。
六、验证性实验
运行结果参考如图4-1所示:
两个一元多项式的相乘P54-55
截图:
编写一个程序,计算出一个单链表中数据域值为一个指定值x的结点个数。
实验要求:
⑴从键盘输入若干个整数,以此序列为顺序建立一个不带头结点的单链表;
⑵输出此单链表中的各个数据元素值;
⑶给定一个x的具体整数值,计算并返回此单链表中数据域值为x的结点个数值。
实验三栈和队列的操作实验
栈和队列的操作
1.掌握栈和对的存储结构的表示和实现方法。
2.掌握栈的入栈和出栈等基本操作算法实现。
3.了解栈在解决实际问题中的简单应用。
1.建立顺序栈,并在顺序栈上实现入栈和出栈操作(验证性内容)。
2.建立链栈,并在链栈上实现入栈和出栈操作(设计性内容)。
3.实现汉诺(Hanoi)塔求解问题(应用性设计内容)。
前期要求熟练掌握了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中的任何一个塔座上;
③任何时刻都不能将一个较大的圆盘压在较小的圆盘上。
实验四二叉树的遍历实验
二叉树的操作
1.理解二叉树的类型定义及性质。
2.掌握二叉树的二叉链表存储结构的表示和实现方法。
3.掌握二叉树遍历操作的算法实现。
4.熟悉二叉树遍历操作的应用。
1.建立二叉树的二叉链表存储结构。
2.实现二叉树的先根、中根和后根三种遍历操作(验证性内容)。
3.应用二叉树的遍历操作来实现判断两棵二叉树是否相等的操作(设计性内容)。
4.求从二叉树根结点到指定结点p之间的路径(应用性设计内容)。
前期要求掌握二叉树的二叉链表的存储结构表示和三种遍历操作算法。
4.运行结果
编程实现根据二叉树的先序遍历序列和中序遍历序列来建立两棵二叉树,并判断这两棵二叉树是否相等。
⑴假设二叉树的结点值是字符,请分别根据输入的两棵二叉树的先根遍历序列和中根遍历序列来建立二叉链表表示的两棵二叉树。
⑵分别利用先根、中根和后根遍历方法来实现判断两棵二叉树是否相等的操作。
⑶主程序中要求设计一个菜单,允许用户通过菜单来多次选择执行利用哪一种遍历方法来判断两棵二叉树是否相等。
实验五二叉排序树的查找操作
二叉排序树的操作
1.掌握二叉排序树的含义及其在计算机中的存储实现。
2.掌握在二叉排序树上查找操作的算法实现。
3.掌握二叉排序树的插入、删除操作的算法实现。
1.建立二叉排序树。
2.在二叉排序树上实现对给定值进行查找操作(验证性内容)。
前期要求掌握二叉排序树的含义、二叉排序树上的查找算法和二叉排序上的插入、删除操作的算法。
运行结果:
七、设计性实验
编程判断一棵二叉树是否为二叉排序树。
⑴二叉树采用二叉链表作为存储结构,且树中结点的关键字均不相同。
⑵要输出最后的判断结果。
实验六图的操作实验
图的操作
□必做√选做
1.掌握图的相关概念。
2.掌握用邻接矩阵和邻接表的方法描述图的存储结构。
3.掌握图的深度优先搜索和广度优先搜索遍历的方法及其计算机的实现。
4.理解最小生成树的有关算法
1.用邻接表作为图的存储结构建立一个图,并对此图分别进行深度优先搜索和广度优先搜索遍历(验证性内容)。
2.用邻接矩阵作为图的存储结构建立一个网,并构造该网的最小生成树(设计性内容)。
3.校园导游程序的实现(应用性设计内容)。
前期要求掌握图及网的含义、图的邻接矩阵和邻接表的存储表示、图的深度优先搜索遍历和广度优先搜索遍历方法、最小生成树的概念及其构造算法。
运行结果
用邻接矩阵作为图的存储结构建立一个网,并构造该网的最小生成树。
实验七查找操作实验
查找操作
1.掌握顺序查找操作的算法实现。
2.掌握二分查找操作的算法实现及实现该查找的前提。
3.掌握哈希查找操作的算法实现。
1.建立顺序查找表,并在此查找表上实现顺序查找操作(验证性内容)。
2.建立有序顺序查找表,并在此查找表上实现二分查找操作(验证性内容)。
3.建立索引查找表,并在此查找表上实现索引查找操作(设计性内容)。
前期要求掌握查找的含义和顺序查找、二分查找及索引查找操作的方法。
(一)运行结果。
(二)哈希表操作
实验八排序操作实验
排序操作
1.熟悉并掌握各种排序方法的设计思路。
2.掌握各种具体排序算法在计算机上的实现。
3.掌握各种排序方法的性能比较。
1.比较用直接插入排序、冒泡排序和简单选择排序方法进行排序时对关键字的比较次数和移动次数(验证性内容)。
2.希尔排序、归并排序和快速排序算法的实现(设计性内容)。
前期要求掌握排序的含义、各种排序的方法及其性能指标分析。
设一列关键字为{3,17,12,61,8,70,97,75,53,26,54,61},分别实现直接插入排序,希尔排序、冒泡排序、快速排序、选择排序和归并排序
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序 技术 基础 实验 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)