《数据结构》实验教案 .pdf
《《数据结构》实验教案 .pdf》由会员分享,可在线阅读,更多相关《《数据结构》实验教案 .pdf(37页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、重庆邮电大学教学实施方案(20122013 学年 秋季 学期)课程名 称:数据结构实验授课对 象:2011 级全校各专业课程性 质:必修课课程学 时:10 学时授课教 师:刘伯红(硕士/副教授)所属部 门:计算机学院计算机专业实验中心2012 年 10 月 12 日名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 37 页 -数据结构 实验教案计算机学院计算机专业实验中心:刘伯红2 目 录重庆邮电大学教师实验授课计划.4 数据结构 C语言程序书写规范.7 一、程序书写规范要求 .7 二、C语言程序示例 .7 三、实验步骤.10 实验一教案线性表的实现及操作.12 一、实验目的.12
2、 二、实验要求.12 三、实验重点与难点 .13 四、实验内容.13 五、参考资料.14 六、实验小结.14 七、课后作业.14 实验二教案栈与队列的应用.16 一、实验目的.16 二、实验要求.16 三、实验重点与难点 .17 四、实验内容.17 五、参考资料.20 六、实验小结.20 七、课后作业.20 实验三教案二叉树的实现及遍历.21 一、实验目的.21 二、实验要求.21 三、实验重点与难点 .21 四、实验内容.22 五、参考资料.24 名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 37 页 -数据结构 实验教案计算机学院计算机专业实验中心:刘伯红3 六、实验小结.
3、24 七、课后作业.24 实验四教案图的实现与遍历.25 一、实验目的.25 二、实验要求.25 三、实验重点与难点 .25 四、实验内容.26 五、参考资料.27 六、实验小结.27 七、课后作业.27 实验五教案查找算法的实现及比较 .28 一、实验目的.28 二、实验要求.28 三、实验重点与难点 .28 四、实验内容.29 五、参考资料.29 六、实验小结.29 七、课后作业.29 实验六教案综合实验 .30 一、实验目的.30 二、实验要求.30 三、实验重点与难点 .31 四、实验内容.31 1简易图书管理模拟系统.31 2.航空客运订票系统.33 3.校园导游咨询.35 五、参考
4、资料.36 六、实验小结.37 七、课后作业.37 名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 37 页 -数据结构 实验教案计算机学院计算机专业实验中心:刘伯红4 重庆邮电大学教师实验授课计划填表人:刘伯红填表时间:2012 年 9 月 10 日学年学期:20121课程编号:040301 课程名称:数据结构实验年级:2011专业:全校各专业学时/学分:理论学时:实验学时:10 学时教材名称及出版社:数据结构 实验指导书(内部讲义)开课专业及班级:全校各专业:1191102、0410906、0360902班等序号周次授课内容摘要(包括授课内容、参考书、自学提纲、学习方法等)课
5、内时数重点、难点及其基本要求相关耗材1 6-7 线性表的实现及操作2 1.了解线性表的逻辑结构特性,以及这种特性在计算机内的两种存储结构。2.掌握线性表的顺序存储结构的定义及其C 语言的实现。3.掌握线性表的链式存储结构单链表的定义及其C语言的实现。4.掌握线性表在顺序存储结构即顺序表中的各种基本操作算法及其 C 语言的实现。5.掌握线性表在链式存储结构单链表中的各种基本操作算法及其 C 语言的实现。2 8-9 栈与队列的应用2 1.了解栈和队列的特性。2.掌握栈的 顺序 表示和实现。名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 37 页 -数据结构 实验教案计算机学院计算机专
6、业实验中心:刘伯红5 3.掌握栈的 链式 表示和实现。4.掌握队列的顺序(循环队列)表示和实现。5.掌握队列的链式表示和实现。掌握栈和队列在实际问题中的应用。3 10-11 二叉树的实现及遍历2 1.掌握二叉树的逻辑结构和存储结构特性2.掌握以二叉链表存储二叉树的各种基本操作的实现。3.理解树的孩子兄弟链表与二叉树二叉链表存储结构及操作。4 11-12 图的实现与遍历2 1.掌握图的基本存储方法。2.掌握有关图的操作算法并用高级语言实现。3.熟练掌握图的两种搜索路径的遍历方法。4.掌握图的有关应用。5 13-14 查找算法的实现及比较2 1.掌握几种典型的查找方法(顺序查找、折半查找、二叉排序
7、树的查找、哈希查找)。2.对各种算法的特点、使用名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 37 页 -数据结构 实验教案计算机学院计算机专业实验中心:刘伯红6 范围和效率有进一步的了解,并能使用高级语言实现查找算法。6 课下综合实验1 学期1.了解并掌握数据结构的设计方法,具备初步的独立分析和设计能力;2.初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;3.提高综合运用所学的理论知识和方法独立分析和解决问题的能力;4.训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风。主讲教师:刘伯红辅导教师:刘伯红授课人
8、数 132人教学部主任签名:方义秋二级学院院长签名:夏英名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 37 页 -数据结构 实验教案计算机学院计算机专业实验中心:刘伯红7 数据结构 C语言程序书写规范一、程序书写规范要求头文件包含命令符号常量的定义数据逻辑结构类型的定义各个子函数的定义(子函数完成各个功能)主函数的定义(完成数据的输入、调用子函数实现功能、输出结果)二、C语言程序示例实现顺序表操作的C 语言程序如下:/头文件包含命令#include stdio.h/符号常量的定义#define maxsize 1024/数据逻辑结构类型的定义typedef char datat
9、ype;typedef struct datatype datamaxsize;/存放数据元素的数组int last;/最后一个元素的下标(从0 开始)sequenlist;/各个子函数的定义(子函数完成各个功能)/在第 i(位置)个元素前插入元素x int insert(sequenlist*L,datatype x,int i)int j;if(L-last=maxsize-1)/如果线性表已满 printf(overflow);return 0;名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 37 页 -数据结构 实验教案计算机学院计算机专业实验中心:刘伯红8 else i
10、f(iL-last+2)/插入位置不合理 printf(error,please input the right i);return 0;else for(j=L-last;j=i-1;j-)L-dataj+1=L-dataj;L-datai-1=x;L-last=L-last+1;return(1);/删除第 i(位置)个元素int dellist(sequenlist*L,int i)int k;if(iL-last+1)/检查删除位置是否合法 printf(error,please input the right i);return 0;else for(k=i;klast;k+)L-d
11、atak-1=L-datak;L-last=L-last-1;return(1);/建立顺序表,其元素为单个字符void creatlist(sequenlist*L)int n,i;char tmp;printf(请输入数据的个数:n);scanf(%d,&n);for(i=0;idatai=tmp;L-last=n-1;printf(n);/输出顺序表void printout(sequenlist*L)int i;for(i=0;ilast;i+)printf(data%d,i);printf(%cn,L-datai);/主函数的定义(完成数据的输入、调用子函数实现功能、输出结果及其他辅
12、助功能)main()sequenlist*L;char cmd,x;int i;L=(sequenlist*)malloc(sizeof(sequenlist);/指针初始化creatlist(L);printout(L);do printf(i,I.插入 n);printf(d,D.删除 n);printf(q,Q.退出 n);do fflush(stdin);/清除键盘缓冲区scanf(%c,&cmd);while(cmd!=d)&(cmd!=D)&(cmd!=D)&(cmd!=q)&(cmd!=Q)&(cmd!=i)&(cmd!=I);switch(cmd)case i:case I:名
13、师资料总结-精品资料欢迎下载-名师精心整理-第 9 页,共 37 页 -数据结构 实验教案计算机学院计算机专业实验中心:刘伯红10 printf(请输入你要插入的数据:);fflush(stdin);scanf(%c,&x);printf(请输入你要插入的位置:);scanf(%d,&i);insert(L,x,i);printout(L);break;case d:case D:printf(请输入你要删除元素的位置:);fflush(stdin);scanf(%d,&i);dellist(L,i);printout(L);break;while(cmd!=q)&(cmd!=Q);三、实验步
14、骤1.问题分析和任务定义明确问题要求做什么,限制做什么。2.数据类型和系统设计分为逻辑设计和详细设计。逻辑设计指的是,为操作数据对象定义相应的数据类型,以数据结构为中心的原则划分模块,定义主模块和各个抽象数据类型。详细设计则为定义相应的存储结构并写出各函数的伪代码算法。3.编码实现即程序设计,是对详细设计结果的进一步求精,用某种高级语言表达出来。4.上机调试名师资料总结-精品资料欢迎下载-名师精心整理-第 10 页,共 37 页 -数据结构 实验教案计算机学院计算机专业实验中心:刘伯红11 调试最好分模块进行,自底向上,即先调试底层函数模块,必要时可以另写一个调用函数。5.书写实验报告。名师资
15、料总结-精品资料欢迎下载-名师精心整理-第 11 页,共 37 页 -数据结构 实验教案计算机学院计算机专业实验中心:刘伯红12 实验一教案线性表的实现及操作第 1 次课教学周第 6-7 周机时安排2 学时实验名称实验一 线性表的实现及操作实验类型1.验证性 2.综合性 3.设计性 4.其它 实验一线性表的实现及操作一、实验目的1.了解线性表的逻辑结构特性,以及这种特性在计算机内的两种存储结构。2.掌握线性表的顺序存储结构的定义及其C 语言的实现。3.掌握线性表的链式存储结构 单链表的定义及其C 语言的实现。4.掌握线性表在顺序存储结构即顺序表中的各种基本操作算法及其 C 语言的实现。5.掌握
16、线性表在链式存储结构 单链表中的各种基本操作算法及其 C 语言的实现。二、实验要求1.认真编写和掌握本实验的算法和程序。2.上机调试本程序。名师资料总结-精品资料欢迎下载-名师精心整理-第 12 页,共 37 页 -数据结构 实验教案计算机学院计算机专业实验中心:刘伯红13 3.保存和上交程序,并结合程序分析其输出结构。4.认真书写实验报告。三、实验重点与难点实验重点:1数据结构C 语言程序编写规范。2线性表的逻辑结构和存储结构。3线性表的各种基本操作。实验难点:线性表的链式存储结构及其基本操作实现。四、实验内容1顺序表的操作实现请编写C 程序,利用顺序存储方式实现下列功能:根据键盘输入数据建
17、立一个顺序表,并输出该线性表;然后根据选择不同的操作,可以进行数据的插入、删除、查找和退出程序,并在插入和删除线性表后,再输出该线性表。2单链表的操作实现请编写C 程序,利用链式存储方式实现下列功能:根据键盘输入数据建立一个单链表,并输出该单链表;然后根据选择不同的操作,可以进行数据的插入、删除、查找和退出程序,并在插入和删除线性表后,再输出该线性表。名师资料总结-精品资料欢迎下载-名师精心整理-第 13 页,共 37 页 -数据结构 实验教案计算机学院计算机专业实验中心:刘伯红14 3应用题:约瑟夫环(1)问题描述:约瑟夫问题的一种描述为,编号为1,2,3,n的 n 个人按顺时针方向围坐一圈
18、,每人持有一个密码(正整数)。一开始任选一个正整数作为报数上限值m,从第一个人开始按顺时针方向自 1 开始顺序报数,报到m 时停止报数。报m 的人出列,将他的密码作为新的m 的值,从他在顺时针方向上的下一个人开始重新从1报数,如此下去,直至所有的人全部出列为止。试设计一个程序求出出列顺序。()基本操作:利用单向循环链表存储结构模拟此过程,按照出列的顺序印出各人的编号。()测试数据:m 的初值为20;n=7,7 个人的密码依次为:3,1,7,2,4,8,4,首先 m 值为 6(正确的出列顺序应为6,1,4,7,2,3,5)。(4)实现提示:程序运行后,首先要求用户指定初始报数上限值,然后读取各人
19、的密码。可设n30。此题所用的循环链表中不需要“头结点”,请注意空表和非空表的界限。五、参考资料严蔚敏,吴伟民,米宁著.数据结构题集(语言版)M,清华大学出版社,2007.5。六、实验小结部分学生不熟悉教材程序伪码和实际程序的区别与转换,部分学生动手编程能力有待提高。七、课后作业名师资料总结-精品资料欢迎下载-名师精心整理-第 14 页,共 37 页 -数据结构 实验教案计算机学院计算机专业实验中心:刘伯红15 完成课堂上未完成的作业与程序编码,撰写实验报告,预习下节课的内容。名师资料总结-精品资料欢迎下载-名师精心整理-第 15 页,共 37 页 -数据结构 实验教案计算机学院计算机专业实验
20、中心:刘伯红16 实验二教案栈与队列的应用第 2 次课教学周第 8-9 周机时安排2 学时实验名称实验二 栈与队列的应用实验类型1.验证性 2.综合性 3.设计性 4.其它 实验二 栈与队列的应用一、实验目的1.了解栈和队列的特性。2.掌握栈的顺序表示和实现。3.掌握栈的链式表示和实现。4.掌握队列的顺序(循环队列)表示和实现。5.掌握队列的链式表示和实现。6.掌握栈和队列在实际问题中的应用。二、实验要求1认真编写和掌握本实验的算法和程序。2上机调试本程序。3保存和上交程序,并结合程序分析其输出结构。4认真书写实验报告。名师资料总结-精品资料欢迎下载-名师精心整理-第 16 页,共 37 页
21、-数据结构 实验教案计算机学院计算机专业实验中心:刘伯红17 三、实验重点与难点实验重点:1栈和队列的逻辑结构和存储结构。3栈和队列的各种基本操作及实现。实验难点:队列的链式表示和实现。栈和队列的应用。四、实验内容1.栈的顺序表示和实现请编写C 程序,实现顺序栈的各种基本运算,并在此基础上设计一个主程序,完成如下功能:(1)初始化顺序栈。(2)插入元素。(3)删除栈顶元素。(4)取栈顶元素。(5)遍历顺序栈。(6)置空顺序栈。2.栈的链式表示和实现请编写C 程序,实现链栈的各种基本运算,并在此基础上设计一个主程序,完成如下功能:名师资料总结-精品资料欢迎下载-名师精心整理-第 17 页,共 3
22、7 页 -数据结构 实验教案计算机学院计算机专业实验中心:刘伯红18(1)初始化链栈。(2)入栈。(3)出栈。(4)取栈顶元素。(5)遍历链栈。(6)置空链栈。3.循环队列的表示和实现请编写C 程序,实现循环队列的各种基本运算,并在此基础上设计一个主程序,完成如下功能:(1)初始化循环队列。(2)入队。(3)出队。(4)取队头元素。(5)遍历队列。(6)置空队列。4.链队的表示和实现请编写C 程序,实现链队的各种基本运算,并在此基础上设计一个主程序,完成如下功能:(1)初始化链队。(2)入队。(3)出队。(4)取队头元素。名师资料总结-精品资料欢迎下载-名师精心整理-第 18 页,共 37 页
23、 -数据结构 实验教案计算机学院计算机专业实验中心:刘伯红19(5)遍历队列。(6)置空队列。5应用题:迷宫问题(1)问题描述:以一个 m n 的长方阵表示迷宫,0 和 1 分别表示迷宫中的通路和障碍。设计一个程序,对任意设定的迷宫,求出一条从入口到出口的通路,或得到没有通路的结论。(2)基本要求:首先实现一个以链表作存储结构的栈类型,然后编写一个求解迷宫的非递归程序。求得的通路以三元组(i,j,d)的形式输出,其中:(i,j)指示迷宫中的一个坐标,d 表示走到下一坐标的方向。如:对 于 下 列 数 据 的 迷 宫,输 出 的 一 条 通 路 为:(1,1,1),(1,2,2),(2,2,2)
24、,(3,2,3),(3,1,2)。(3)测试数据:迷宫的测试数据如下:左下角(1,1)为入口,右下角(8,9)为出口。0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 1 0 1 0 1 1 1 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 1 0 1 1 1 1 0 0 1 1 1 0 0 0 1 0 1 1 1 0 0 0 0 0 0(4)实现提示:计算机解迷宫通常用的是“穷举求解”方法,即从入口出发,顺着某一个方向进行探索,若能走通,则继续前进;否则沿着原路退回,换一个方向继续探索,直至出口位置,求得一条通路。假如所有可能的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 数据结构实验教案 2022 实验 教案
限制150内