《数据结构》实验指导书
整理时间:2022-11-20
目录
实验1 C语言基础练习
实验2顺序表及其应用
实验3 链表及其应用
实验4 栈和队列
实验5二叉树及其应用
实验6 图的应用
实验7 查找算法
实验8 排序算法
实验1 C语言基础练习
一、实验目的
对C语言的复习,增强学生对结构体数组和指针的学习,尤以结构体的应用和指针的操作。
二、问题描述
- 构造一个学生结构体数组,成员包括学号,姓名,四门成绩,以及平均成绩;
- 从键盘上输入学生的学号,姓名和四门成绩;
- 找出考试有不及格的学生姓名并输出;找出平均分在90分以上的学生并输出。
三、实验要求
- 要求用链表存储学生的记录,并设计出输入和查找的基本操作算法。
- 在实验过程中,分析算法的时间复杂度和空间复杂度进行分析。
四、实验环境
PC微机
DOS操作系统或 Windows 操作系统
Visual C 程序集成环境或 Visual studio程序集成环境
五、实验步骤
- 用所选择的语言实现算法;
- 测试程序,并对算法进行时间和空间复杂度分析。
六、实验报告要求
实验报告应包括以下几个部分:
- 问题描述;
- 测试结果的分析与讨论,在测试过程中遇到的主要问题及采取的解决措施。
- 设计与实现过程中的体会,进一步的改进设想。
- 实现算法的程序清单,应有足够的注释。
实验2顺序表及其应用
一、实验目的
掌握顺序表基本操作,利用顺序表能够进行基本实际应用。
二、实验内容
- 实现线性表的顺序存储方法,顺序表建立、插入、删除、查找等基本操作。
- 基于顺序表的基本操作,编写算法函数reverse(sequence_list *L),实现顺序表的就地逆置。
三、实验环境
- 使用的操作系统及版本。
Windows xp professional
- 使用的编译系统及版本。
Visual 6.0
四、实验步骤及说明
1、完成线性表的顺序存储结构的C语言描述,顺序表的建立、插入、删除、查找等基本操作的实现。
2、利用上述基本操作实现就地逆置的代码编写,并输入数据测试。
五、实验报告要求
实验报告应包括以下几个部分:
- 问题描述;
- 测试结果的分析与讨论,在测试过程中遇到的主要问题及采取的解决措施。
- 设计与实现过程中的体会,进一步的改进设想。
- 实现算法的程序清单,应有足够的注释。
实验3 链表及其应用
一、实验目的
1.掌握链表的灵活运用;
2.学习链表初始化和建立一个新的链表;
3.知道怎样去实现链表删除结点操作与插入结点;
4.理解链表的基本操作(包括数据域数据的相加)并能灵活运用。
二、实验内容
- 实现线性表的链式存储方法,单链表建立、插入、删除、查找等基本操作。
- 基于单链表的基本操作,编写算法函数reverse(sequence_list *L),实现单链表的就地逆置。
- 建立两个链表为一元多项式,将他们每项按指数相加,最后将得到的链表打印出来。
三、实验环境
- 使用的操作系统及版本。
Windows xp professional
- 使用的编译系统及版本。
Visual 6.0
四、实验步骤及说明
1、完成线性表的链式存储结构的C语言描述,单链表的建立、插入、删除、查找等基本操作的实现。
2、利用上述基本操作实现就地逆置的代码编写,并输入数据测试。
3、建立一元多项式链表,实现相加操作,输出结果。
五、实验报告要求
实验报告应包括以下几个部分:
- 问题描述;
- 测试结果的分析与讨论,在测试过程中遇到的主要问题及采取的解决措施。
- 设计与实现过程中的体会,进一步的改进设想。
- 实现算法的程序清单,应有足够的注释。
实验4 栈和队列
一、实验目的
- 掌握栈的顺序存储结构的C语言描述。
- 掌握栈“后进先出”的特点。
- 掌握栈的典型应用——表达式求值。
- 实验内容
表达式求值运算是实现程序设计语言的基本问题之一,也是栈应用的一个典型例子。设计并演示用算符优先级对算术表达式的求解过程。
三、实验环境
- 使用的操作系统及版本。
Windows xp professional
- 使用的编译系统及版本。
Visual 6.0
四、实验步骤及说明
1、 根据给出的算符优先级,设置运算符栈和运算数栈;
2、 在读入表达式的同时,完成运算符和运算数的识别处理,并将运算数的字符序列形式转换成整数形式,并进行相应的运算;
3、 调试程序,检查输出结果;
4、 实验小结。
五、实验报告要求
实验报告应包括以下几个部分:
1、问题描述;
2、算法的设计描述;
3、测试结果的分析与讨论。
4、设计与实现过程中的体会,进一步的改进设想。
5、实现算法的程序清单,应有足够的注释。
六、测试数据
- 输入数据:1+(20+4)/(4-1)
正确结果:9
- 输入数据:2*9-6-(20+4)/(4-1)
正确结果:4
实验5二叉树及其应用
一、实验目的
树是数据结构中应用极为广泛的非线性结构,本单元的实验达到熟悉二叉树的存储结构的特性,以及如何应用树结构解决具体问题。
二、实验内容
利用二叉树求解表达式的值。
三、实验环境
- 使用的操作系统及版本。
Windows xp professional
- 使用的编译系统及版本。
Visual 6.0
四、实验步骤及说明
- 由输入的表达式字符串动态生成算术表达式所对应的二叉树。
- 自动完成求值运算和输出结果。
五、实验报告要求
实验报告应包括以下几个部分:
- 设计算术表达式树的存储结构;
- 给出生成表达式树算法和求解算法描述;
- 相应的程序要给出足够的注释部分;
- 给出程序的测试结果;
- 实验总结。
六、测试数据
1、 输入数据:2.2*(3.1+1.20)-7.5/3
正确结果:6.96
2、 输入数据:(1+2)*3+(5+6*7);
正确输出:56
实验6 图的应用
一、实验目的
图是应用极为广泛的数据结构,也是这门课程的重点,继续使学生更了解数据结构加操作的程序设计观点。
二、实验内容
运用Dijkstra算法求最短路径。
三、实验环境
- 使用的操作系统及版本。
Windows xp professional
- 使用的编译系统及版本。
Visual 6.0
四、实验步骤及说明
- 将导游图看作一张带权无向图,顶点表示公园的各个景点,边表示各景点之间的道路,边上的权值表示距离,选择适当的数据结构。
- 求大门到各个景点之间的一条最短路径。
五、实验报告要求
实验报告应包括以下几个部分:
- 问题描述;
- 图的最短路径算法;
- 公园平面图;
- 程序的测试结果和问题;
- 实验总结。
实验7 查找算法
一、实验目的
熟练掌握散列表构造方法和检索方法及效率分析。
二、实验内容
运用除余法构造散列函数,并用拉链法解决地址冲突的散列表构造及其检索算法。
三、实验环境
- 使用的操作系统及版本。
Windows xp professional
- 使用的编译系统及版本。
Visual 6.0
四、实验步骤及说明
1、根据问题描述写出基本算法。
2、 运用除余法构造散列函数,并用拉链法解决地址冲突的散列表构造及其检索算法。
3、对结果进行分析总结。
五、实验报告要求
实验报告应包括以下几个部分:
1、问题描述。
2、算法描述。
3、实现算法的程序。
4、调试程序。
5、实验总结。
实验8 排序算法
一、实验目的
深入了解各种内部排序方法及效率分析。
二、实验内容
1、对直接插入排序、简单选择排序、快速排序、希尔排序这几种常用排序算法进行比较。
2、待排序表的表长不超过100;其中数据用伪随机数产生程序产生。
3、 至少要用6组不同的输入数据做比较。
4、 要对实验结果做简单分析。
三、实验环境
- 使用的操作系统及版本。
Windows xp professional
- 使用的编译系统及版本。
Visual 6.0
四、实验步骤及说明
1、根据问题描述写出基本算法。
2、设计四种排序算法并用适当语言实现。
3、输入几组随机数据,并对其关键字比较次数和关键字移动次数的比较。
4、对结果进行分析。
5、进行总结。
五、实验报告要求
实验报告应包括以下几个部分:
1、问题描述。
2、四种排序算法描述。
3、实现算法的程序。
4、调试程序。
5、比较各算法中的关键字比较次数和关键字移动次数。
《数据结构》实验指导书相关推荐
- 数据结构实验指导书(朱素英)
< - 数据结构 -> 实验指导书朱素英 编 写适用专业: 计算机科学与技术 计算机网络工程 湖南人文科技学院计算机科学技术系 2008 年 8 月前 言<数据结构>课程是计算 ...
- 计算机操作系统32,计算机操作系统实验指导书32138
计算机操作系统实验指导书32138 (22页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 14.9 积分 <计算机操作系统>实验指导书程科白素 ...
- 操作系统实验指导书(完整版)
操作系统实验指导书 烟台大学计算机学院 操作系统课程组 2008-9-20 第一部分 操作系统上机指导 Linux操作系统环境: RedHat Enterprise Linux ES relea ...
- 计算机操作系统指导书,《计算机操作系统》实验指导书-2015
q.num++; System.out.println(\已生产第:\个产品!\ try { Thread.currentThread().sleep(100); } catch (Interrupt ...
- 讨论生活中什么样东西可以何种变量描述找出生活中顺序执行事情用c语言,《C语言程序设计》实验指导书...
<C语言程序设计>实验指导书 (25页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.90 积分 <C语言程序设计>实验指导书实 ...
- 用c语言编写程序出现undecla,济南大学C程序设计基础实验指导书
<济南大学C程序设计基础实验指导书>由会员分享,可在线阅读,更多相关<济南大学C程序设计基础实验指导书(48页珍藏版)>请在人人文库网上搜索. 1.程序设计基础实验指导书信息科 ...
- 《数据库原理实验指导书》
<数据库原理实验指导书> 河南科技大学软件学院 目录 实验规则 基本实验方法 实验环境 实验一 数据定义 实验二 数据更新 实验三 数据查询-简单查询和连接查询 实验四 数据查询-分组查询 ...
- c语言编写一个函数用静态变量求累加和,C语言程序设计I实验指导书.doc
C语言程序设计I实验指导书 课程实验指导书 第二部分 实验内容 实验一:数组定义.初始化和引用运算 一.实验目的 1.掌握一维数组的定义和引用 2.掌握一维数组的初始化方法 3.了解与一维数组有关的应 ...
- 计算机操作系统实验指导linux版,操作系统实验指导书(linux版).doc
操作系统实验指导书(linux版) <操作系统>实验指导书 实验学时:16 适用专业:计算机科学与技术 实验一:进程和线程的创建 1. 在linux下编写一个应用程序,命名为an_ch2_ ...
- python程序设计实验指导书第1版实验三十四_《python编程基础》实验指导书.doc
<python编程基础>实验指导书 PAGE 南 阳 理 工 学 院 <python编程基础>实验指导书 (2014版) 软件学院·软件工程教研室 2011.3 目录 TOC ...
最新文章
- 19元素的显示与隐藏
- Shell脚本中信号处理实践
- 011_Cascader级联选择器
- android闹钟详细设计,基于LabVIEW的闹钟设计 详细文档+程序
- Redis高效性探索--线程IO模型,通信协议
- Java各进制之间的转换
- springcloud使用zipkin实现链路追踪与监控
- 怎么成为开源贡献者_成为负责任的开源用户
- 如何使用 stack?- 每天5分钟玩转 Docker 容器技术(112)
- 小样本点云深度学习库_NeurIPS2019 | MIT与上海交大提出新型点云深度学习框架Point-Voxel CNN...
- Fiddler抓包工具之详细使用步骤(超详细)
- win10怎么更新Android驱动,w10怎么更新驱动程序_教你win10更新驱动程序的方法步骤...
- D7000、60D、K5、E5的详细对比评价(转)
- C++经典程序代码大全
- 苹果手机图片如何同步鸿蒙,教你如何在两台iPhone之间传照片
- 无线路由器关掉dhcp服务器,无线路由器关闭dhcp会好不好
- 金蝶标准版7.0计算机快捷,掌握金蝶KIS基本的技巧,快速操作金蝶软件!
- UNI-APP_uni-app IOS平台通用链接【Universal Links】配置
- Flink 入门实战之一HelloWord
- AC自动机 从入门到模板