《数据结构》实验教案(1-13)

上传人:n**** 文档编号:55694991 上传时间:2018-10-04 格式:DOC 页数:27 大小:192KB
返回 下载 相关 举报
《数据结构》实验教案(1-13)_第1页
第1页 / 共27页
《数据结构》实验教案(1-13)_第2页
第2页 / 共27页
《数据结构》实验教案(1-13)_第3页
第3页 / 共27页
《数据结构》实验教案(1-13)_第4页
第4页 / 共27页
《数据结构》实验教案(1-13)_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《《数据结构》实验教案(1-13)》由会员分享,可在线阅读,更多相关《《数据结构》实验教案(1-13)(27页珍藏版)》请在金锄头文库上搜索。

1、数数 据据 结结 构构 实验报告实验报告实验课程:实验课程: 数据结构数据结构 学学 号:号: 2016031124 学生姓名:学生姓名: 郑世林郑世林 班班 级:级: 16 软件软件 20172017 年年 月月 日日山东信息职业技术学院实验报告学号:2016031124 姓名:郑世林 班级: 16 软件 同组者: 课程名称:数据结构 指导老师: 武洪萍 实验成绩: 2实验一 函数与结构体(复习)一、实验目的:一、实验目的:巩固复习前期所学 C 语言的函数参数传递、指针和结构体等知识点,加强学习数据结构语言基础。二、实验要求二、实验要求 1、学生提前准备好实验报告,预习并熟悉实验步骤; 2、

2、遵守实验室纪律,在规定的时间内完成要求的内容; 3、12 人为 1 小组,实验过程中独立操作、相互学习。 三、实验内容:三、实验内容:1. 用数组处理 Fibonacci 数列问题。已知 Fibonacci 数列: 1 1 2 3 5 8 13 21 34 输出数列的前 20 项。 #include int main() int a22,i,n;a0=a1=1;for(i=2;i int max(int x,int y); /*函数 max 的声明*/ int max3(int x,int y,int z); /*函数 max3 的声明*/ void main() int a,b,c,m; p

3、rintf(“请输入三个整数,用逗号隔开:n“); scanf(“%d,%d,%d“, /*从键盘接收 3 个整数*/ m=max3(a,b,c); printf(“Max is %dn“,m); getch(); int max(int x, int y) /*函数功能:返回 x、y 的最大值*/ return (xy?x:y); int max3(int x, int y, int z) /*函数功能:返回 x、y、z 的最大值*/ int m;m=max(max(x,y),z); return m; 山东信息职业技术学院实验报告学号:2016031124 姓名:郑世林 班级: 16 软件

4、 同组者: 课程名称:数据结构 指导老师: 武洪萍 实验成绩: 43.学生信息的显示,具体要求如下: 1)定义一个结构体描述学生信息(学号,姓名,性别,年龄,住址); 2)设计一个函数,用于显示单个学生信息,函数的参数为前面定义的结构体类型; 3)设计一个主函数,在主函数中输入学生的信息,并调用前面定义的函数进行显示(学生人数不 少于 5 人) 。 提示:可用结构体数组保存学生信息。4. 输入若干个整数作为数组元素值,然后按输入时顺序的就地逆置排序,最后打印出逆置后的元 素值。例如 输入:10 2 30 4 5,逆置后显示为:5 4 30 2 10。四、四、 程序运行结果和源代码为:程序运行结

5、果和源代码为: 此处写程序源代码,请在程序中适当注释,便于老师更快地看懂你的程序。此处写出程序运行的结果,即输入数据是什么,输出数据是什么,分析结果是否正确,如果不正确是什么原因。五、实验总结五、实验总结1、收获2、存在的问题山东信息职业技术学院实验报告学号:2016031124 姓名:郑世林 班级: 16 软件 同组者: 课程名称:数据结构 指导老师: 武洪萍 实验成绩: 5实验二 线性表的算法实现一、实验目的:一、实验目的:1、掌握线性表的定义方法; 2、.掌握线性表基本操作的实现方法; 二、实验要求二、实验要求 1、学生提前准备好实验报告,预习并熟悉实验步骤; 2、遵守实验室纪律,在规定

6、的时间内完成要求的内容; 3、12 人为 1 小组,实验过程中独立操作、相互学习。 三、实验内容及思路:三、实验内容及思路:要求:将调试好的代码存放到各算法的空白处。 1、线性表的定义: #define MAX 最大长度值最大长度值 typedef struct datatype dataMAX; int last; list;2、线性表的初始化 思路:顺序表的初始化就是构造一个空表,或者说是为了给线性表 l 分配存储空间。由于采用的 是静态存储结构(数组) ,线性表的存储空间是由编译系统分配的,因此,只要对线性表的长度进 行初始化即可。3、求线性表的长度4、插入运算 思路:在保证所给插入位置

7、 i 合理的前提下,必须先将第 i 个及其以后的数据元素,向后移动一 个元素的位置,然后才能将新的元素 x 存入留出的空位置上,插入后使原表长 last 的长度值加 1。5、删除运算 思路:在此讨论线性表的删除运算是指将表中第 i 个元素从线性表中去掉,因为是顺序存储结构, 在保证所给删除位置 i 合理的前提下,删除后必须将第 i+1 个及其以后的元素前移一个位置,最 后表的长度减 1。山东信息职业技术学院实验报告学号:2016031124 姓名:郑世林 班级: 16 软件 同组者: 课程名称:数据结构 指导老师: 武洪萍 实验成绩: 66、查找 思路:在此讨论线性表的查找是指在线性表中查找与

8、给定值 x 相等的数据元素。从线性表的第一 个元素 l-data1 起依次和 x 比较,直到找到一个与 x 相等的数据元素,则返回它在线性 表中的存储下标;或者查遍整个表都没有找到与 x 相等的元素,返回 0。7、线性表元素的输出8、主函数 main() 程序结构: (1) 声明变量及线性表; (2) 初始化线性表; (3) 输入线性表的元素(提示:用插入算法来实现) ; (4) 输出线性表中的元素; (5) 显示线性表的长度; (6) 在线性表中进行元素查找(可提供元素值,也可以提供元素位置) ; (7) 往线性表中插入数据元素(提供元素值及位置) ; (8) 删除线性表中的数据元素(提供元

9、素值或位置) ; (9) 输出线性表中最后的结果。四、四、 程序运行结果和源代码为:程序运行结果和源代码为:五、实验总结:五、实验总结:1、收获山东信息职业技术学院实验报告学号:2016031124 姓名:郑世林 班级: 16 软件 同组者: 课程名称:数据结构 指导老师: 武洪萍 实验成绩: 72、存在的问题山东信息职业技术学院实验报告学号:2016031124 姓名:郑世林 班级: 16 软件 同组者: 课程名称:数据结构 指导老师: 武洪萍 实验成绩: 8实验三 线性表的应用一、实验目的:一、实验目的:1、进一步掌握线性表的定义方法; 2、进一步掌握线性表基本操作的实现方法; 3、掌握线

10、性表的应用。 二、实验要求二、实验要求 1、学生提前准备好实验报告,预习并熟悉实验步骤; 2、遵守实验室纪律,在规定的时间内完成要求的内容; 3、12 人为 1 小组,实验过程中独立操作、相互学习。 三、实验内容及思路:三、实验内容及思路:要求:将调试好的代码存放到各算法的空白处。 1、有两个线性表 la 和 lb,类型为 list。编写一个算法将它们合并成一个线性表 la ,要求将 lb 接 到 la 的后面,并且要求 lb 中的元素在 la 中已存在,则不把该元素合进去。 算法思路:把线性表 la 和 lb 的长度分别赋给 n 和 m;从 lb 中的第一个元素起,对每一个元素与 la 中的

11、每一个元素进行查找比较,若未找到则将这个 lb 元素插入到 la 表尾,否则继续比较下一个, 直到 lb 中所有元素比较完,则合并完成;并应保证 la 表足够长。2、已知一个线性表 la 中的元素已按升序排列,其类型为 list。编写一个算法将该线性表中的重复 元素删除(即在表中不能有相同的元素) 。 算法思路:由于线性表 la 中的元素已按升序排列,所以值相同的元素必为相邻的元素,因此依次 比较相邻的两个元素,若值相等,则删除其中的一个,否则继续向后比较,直到表尾。3、有顺序表 A 和 B,其元素均按从小到大的升序排列,编写一个算法将它们合并成一个顺序表 C,要求 C 的元素也是从小到大的升

12、序排列。 算法思路:依次扫描通过 A 和 B 的元素,比较当前的元素的值,将较小值的元素赋给 C,如此址 到一个线性表扫描完毕,然后将未完的那个顺序表中余下部分赋给 C 即可。C 的容量要能够容纳 A、B 两个线性表相加的长度。山东信息职业技术学院实验报告学号:2016031124 姓名:郑世林 班级: 16 软件 同组者: 课程名称:数据结构 指导老师: 武洪萍 实验成绩: 94、主函数 main() 程序结构: (1) 声明变量及线性表; (2) 初始化线性表; (3) 输入线性表的元素(提示:用插入算法来实现) ; (4) 输出线性表中的元素; (5) 对两个线性表进行按升序合并 (6)

13、 输出合并后线性表中元素。四、四、 程序运行结果和源代码为:程序运行结果和源代码为:五、实验总结:五、实验总结:1、收获2、存在的问题山东信息职业技术学院实验报告学号:2016031124 姓名:郑世林 班级: 16 软件 同组者: 课程名称:数据结构 指导老师: 武洪萍 实验成绩: 10实验四 栈的实现一、实验目的:一、实验目的:1、理解栈的线性结构的特点; 2、掌握栈的顺序表示; 2、掌握栈基本操作的实现方法; 3、能够应用栈设计算法解决实际问题。 二、实验要求二、实验要求 1、学生提前准备好实验报告,预习并熟悉实验步骤; 2、遵守实验室纪律,在规定的时间内完成要求的内容; 3、12 人为

14、 1 小组,实验过程中独立操作、相互学习。 三、实验内容及思路:三、实验内容及思路:要求:将调试好的代码存放到各算法的空白处。 1、栈的定义: #define MAX 栈中允许存放元素的最大个数栈中允许存放元素的最大个数 typedef struct datatype dataMAX; int top; stack; 2、栈的基本算法的实现 栈初始化:init(s) 构造了一个空栈; 判栈空:empty(s) 若栈 s 为空栈返回为 1,否则返回为 0; 入栈:push(s,x) 在栈 s 的顶部插入一个新元素 x,使 x 成为新的栈顶元素; 出栈:pop(s) 栈 s 的顶部元素从栈中删除; 读栈顶元素:get(s) 取栈顶元素作为结果返回; 置栈空:clear(s) 清除栈 s 中的所有元素,使之成为空栈。利用主函数 main()调用上述函数。3、利用栈结构实现“数制转换”问题 要求:输入的一个十进制数,能够转换成相应的八进制数,并输出。 思路:把十进制数转换为八进制数采用的方法是“除 8 取余” ,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 教育/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号