数据结构实验报告

可以先看看,如果需要的话,可以在网盘下载:

链接:https://pan.baidu.com/s/1nvSk3wd 密码:q6dm

CSDN资源地址:https://download.csdn.net/download/eseszb/10502914




《数据结构》实验指导书

实验描述 

实验一  线性表的应用

【实验目的】
1. 熟练掌握线性表的基本操作在顺序存储和链式存储上的实现;
2. 以线性表的各种操作(建立、插入、删除、遍历等)的实现为重点;
3. 掌握线性表的动态分配顺序存储结构的定义和基本操作的实现;
4. 通过本章实验帮助学生加深对C语言的使用(特别是函数的参数调用、指针类型的应用和链表的建立等各种基本操作)。

【实验内容】
约瑟夫问题的实现:n只猴子要选猴王,所有猴子按1,2,…,n编号围坐一圈,从第1只开始按1,2,…,m报数,凡报到m号的猴子退出圈外,如此循环报数,直到圈内剩下一只猴子时,这个猴子就是猴王。编写一个程序实现上述过程,n和m由键盘输入。

【实验要求】
1. 要求用顺序表和链表分别实现约瑟夫问题;
2. 独立完成,严禁抄袭;
3. 上交的实验报告由如下部分组成:①实验名称②实验目的③实验内容(数据描述,算法描述,程序清单,测试结果,算法分析) 

 

实验二  栈和队列的应用

【实验目的】
1. 熟练掌握栈和队列的结构,以及这两种数据结构的特点;

2. 能够在两种存储结构上实现栈的基本运算,特别注意栈满栈空的判断条件和描述方法;

3. 熟练掌握链队列和循环队列的基本运算,特别注意队列满和队列空的判断条件和描述方法。

【实验内容】
表达式求值的实现:输入一个包含“+”、“-”、“*”、“/”、正整数和圆括号的合法表达式,用算符优先法计算该表达式的结果。

【实验要求】
1. 要求用栈实现表达式求值问题;
2. 独立完成,严禁抄袭;
3. 上交的实验报告由如下部分组成:①实验名称②实验目的③实验内容(数据描述,算法描述,程序清单,测试结果,算法分析) 

 

实验三  数组的应用

【实验目的】
1. 掌握数组的两种存储表示方法;
2. 掌握对特殊矩阵进行压缩存储时的下标变换公式;
3. 掌握稀疏矩阵的两种压缩存储方法的特点和适用范围。

【实验内容】
稀疏矩阵转置的实现:用三元组顺序表做存储结构,实现稀疏矩阵的转置。

【实验要求】
上交实验报告,要求同上。 

实验四  树和二叉树的应用

【实验目的】
1. 熟练掌握树的基本概念、二叉树的基本操作及在链式存储结构上的实现;

2. 重点掌握二叉树的生成、遍历及求深度等算法;

3. 掌握哈夫曼树的含义及其应用。

4. 掌握运用递归方式描述算法及编写递归C程序的方法,提高算法分析和程序设计能力。

【实验内容】
二叉树采用二叉链表作存储结构,试编程实现二叉树的如下基本操作:
1. 按先序序列构造一棵二叉链表表示的二叉树T;
2. 对这棵二叉树进行遍历:中序、后序以及层次遍历序列,分别输出结点的遍历序列;
3. 求二叉树的深度/叶结点数目。

【实验要求】
上交实验报告,要求同上。 

 

实验五  图的应用

【实验目的】
1. 熟练掌握图的邻接矩阵和邻接表的存储方式;

2. 实现图的一些基本运算,特别是深度遍历和广度遍历;

3. 掌握以图为基础的一些常用算法,如最小生成树、拓扑排序、最短路径等。

 

【实验内容】
1. 由给定的顶点和边的信息构造图的邻接矩阵存储; 对该图进行深度优先搜索,输出搜索得到的结点序列;

 


3. 以邻接表作存储结构,用克鲁斯卡尔算法构造最小生成树。

 

【实验要求】
上交实验报告,要求同上。

 

实验六  查找表的应用

【实验目的】
1. 熟练掌握静态查找表的构造方法和查找算法;

2. 熟练掌握二叉排序树的构造和查找方法;

3. 熟练掌握哈希表的构造和处理冲突的方法;

4. 掌握各种查找表查找效率的分析方法。

 

【实验内容】
1. 要求将二叉排序树的建立、插入、删除、显示等算法合并在一个综合程序中,用户可通过菜单选择方式运行各种操作算法;
2. 已知哈希表的表长为m,哈希函数为H(key)=keyMOD p,用开放定址法(增量序列采用线性探测再散列)解决冲突,试编写构造哈希表的程序。

 

【实验要求】
上交实验报告,要求同上。 

 

 

实验七 排序算法的应用

【实验目的】
1. 熟练掌握各种排序的算法思想、方法及稳定性;

2. 对一组数据,能写出其具体的排序过程、算法及完整程序,并上机调试;

3. 掌握每一种排序算法的时空复杂度的分析方法。

 

【实验内容】
有如下数据:

成绩   75    87   68    92    88   61    77    96   80    72

姓名  王华 李燕  张萍  陈涛 刘丽  章强  孙军 朱彬  徐伟  曾亚

以成绩作关键字,试编程实现如下基本操作:

1. 用冒泡排序对上面数据按成绩非递减排列,并分析时空复杂度;

2. 用简单选择排序对上面数据按成绩非递减排列,并分析时空复杂度;

3. 用快速排序对上面数据按成绩非递减排列,并分析时空复杂度。

 

【实验要求】

上交实验报告࿰

  • 16
    点赞
  • 126
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值