数据结构课程设计(1)课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《数据结构课程设计(1)课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 课程设计 课件
- 资源描述:
-
1、课程设计课程设计pp-1数据结构数据结构课程设计课程设计pp-2数据结构数据结构时间:时间: 二周。二周。完成方式:完成方式: 一人一题。一人一题。考核方式:考核方式: 考查。考查。 考核形式:考核形式: 检查:上机运行、检查结果;检查:上机运行、检查结果; 答辩:对程序提问、回答问题;答辩:对程序提问、回答问题; 提交:原程序清单、课程设计报告。提交:原程序清单、课程设计报告。 成绩评定方式:成绩评定方式: 按上机调试情况、运行结果和答辩按上机调试情况、运行结果和答辩情况、课程设计报告三方面评定。情况、课程设计报告三方面评定。 成绩评定档次:成绩评定档次: 优、良、中、及格、不及格。优、良、
2、中、及格、不及格。课程设计课程设计pp-3数据结构数据结构文档要求文档要求课程设计报告按教务处指定的格式填写打印。课程设计报告按教务处指定的格式填写打印。1 1 封面封面2 2 课程设计任务书课程设计任务书3 3 课程设计鉴定表课程设计鉴定表4 4 目录目录 要求给出标题及页次。要求给出标题及页次。5 5 课程设计的目的课程设计的目的6 6 课程设计任务与要求课程设计任务与要求7 7 设计思想及实现要点设计思想及实现要点课程设计课程设计pp-4数据结构数据结构8 8 系统测试系统测试 说明程序调试过程中出现的问题及说明程序调试过程中出现的问题及解决的方法。解决的方法。9 9 操作说明操作说明
3、说明使用本软件的操作方法。说明使用本软件的操作方法。10 10 总结总结 在总结中可谈本人的心得体会及软件在总结中可谈本人的心得体会及软件进一步改进的方向等项内容。进一步改进的方向等项内容。11 11 参考文献参考文献12 12 附录附录课程设计课程设计pp-5数据结构数据结构题目1 1 一元多项式计算器一元多项式计算器问题描述:问题描述: 设计一个稀疏多项式简单计算器设计一个稀疏多项式简单计算器基本要求:基本要求: (1) (1) 输入并分别建立多项式输入并分别建立多项式A A和和B B。 (2) (2) 输入输出多项式,输出形式为整数序列:输入输出多项式,输出形式为整数序列: n,cn,c
4、1 1,e,e1 1,c,c2 2,e,e2 2, 其中其中n n是多项式的项数,是多项式的项数,c ci i和和e ei i是第是第i i项的系数项的系数和指数,序列按指数降序排列。和指数,序列按指数降序排列。 (3) (3)完成两个多项式的相加、相减,并将结果输出。完成两个多项式的相加、相减,并将结果输出。课程设计课程设计pp-6数据结构数据结构测试数据:测试数据:(1)A+B A=3x14-8x8+6x2+2; B=2x10+4x8+-6x2(2) A-B A=11x14+3x10+2x8+10 x6+5 ; B=2x14+3x8+5x6+7(3) A+B A=x3+x1 ; B=-x3
5、-x1(4) A+B A=0 ; B=x7+x5+x3+x1(5)A-B A=100 x100+50 x50+20 x20+x ; B=10 x100+10 x50+10 x20+x选作内容:选作内容:(1 1)多项式在)多项式在x=1x=1时的运算结果;时的运算结果;(2 2)求多项式)求多项式A A和和B B的乘积。的乘积。课程设计课程设计pp-7数据结构数据结构题目2 2 迷宫问题迷宫问题 问题问题描述:描述: 以一个以一个m m* *n n的长方阵表示迷宫,的长方阵表示迷宫,0 0和和1 1分别表示迷宫分别表示迷宫中的通路和障碍。迷宫问题要求求出从入口(中的通路和障碍。迷宫问题要求求出
6、从入口(1 1, ,1 1)到)到出口(出口(m,nm,n)的一条通路,或得出没有通路的结论。的一条通路,或得出没有通路的结论。 基本要求:基本要求: 首先实现一个以链表作存储结构的栈类型,然后首先实现一个以链表作存储结构的栈类型,然后编写一个求迷宫问题的非递归程序,求得的通路以三编写一个求迷宫问题的非递归程序,求得的通路以三元组(元组(i, ,j, ,d)的形式输出,其中:(的形式输出,其中:(i,j)指示迷宫中指示迷宫中的一个坐标,的一个坐标, d表示走到下一坐标的方向。表示走到下一坐标的方向。课程设计课程设计pp-8数据结构数据结构测试数据:测试数据: 左上角(左上角(1 1, ,1 1
7、)为入口,右下角()为入口,右下角(m,nm,n)为出口。为出口。选作内容:选作内容: (1 1)编写递归形式的算法,求得迷宫中的所有可)编写递归形式的算法,求得迷宫中的所有可能的通路;能的通路; (2 2)以方阵的形式输出迷宫及其通路迷宫中的所)以方阵的形式输出迷宫及其通路迷宫中的所有可能的通路;有可能的通路;课程设计课程设计pp-9数据结构数据结构题目3 3 二叉排序树的应用二叉排序树的应用 问题描述:问题描述: 利用二叉排序树对顺序表进行排序。利用二叉排序树对顺序表进行排序。基本要求:基本要求: (1 1)生成一个顺序表)生成一个顺序表L;L; (2 2)对所生成的顺序表对所生成的顺序表
8、L L构造二叉排序树构造二叉排序树; ; (3 3)利用栈结构实现中序遍历二叉排序树)利用栈结构实现中序遍历二叉排序树; ; (4 4)中序遍历所构造的二叉排序树将记录由小到)中序遍历所构造的二叉排序树将记录由小到大输出。大输出。测试数据:测试数据: 用伪随机数产生程序产生随机数,用伪随机数产生程序产生随机数,表长不小于表长不小于2020。选作内容:选作内容: 实现二叉排序树的插入和删除操作。实现二叉排序树的插入和删除操作。课程设计课程设计pp-10数据结构数据结构问题描述:问题描述: 设计一个交通咨询系统,为自驾游旅行者客咨询从任设计一个交通咨询系统,为自驾游旅行者客咨询从任一个城市到另一个
9、城市之间的最短路径问题。设计分三一个城市到另一个城市之间的最短路径问题。设计分三个部分,一是建立交通网络图的存储结构;二是解决单个部分,一是建立交通网络图的存储结构;二是解决单源最短路径问题;最后再实现两个城市顶点之间的最短源最短路径问题;最后再实现两个城市顶点之间的最短路径问题。路径问题。基本要求:基本要求: 1 对城市信息对城市信息(城市名、城市间的里程城市名、城市间的里程)进行编辑:具进行编辑:具备添加、修改、删除功能;备添加、修改、删除功能; 2 咨询以用户和计算机对话方式进行,要注意人机交咨询以用户和计算机对话方式进行,要注意人机交互的屏幕界面。由用户选择输入起点、终点,输出信息:互
10、的屏幕界面。由用户选择输入起点、终点,输出信息:旅行者从起点、终点经过的每一座城市。旅行者从起点、终点经过的每一座城市。 3. 主程序可以有系统界面、菜单;也可用命令提示方主程序可以有系统界面、菜单;也可用命令提示方式;选择功能模块执行,要求在程序运行过程中可以反式;选择功能模块执行,要求在程序运行过程中可以反复操作。复操作。题目4 4 交通咨询系统交通咨询系统课程设计课程设计pp-11数据结构数据结构测试数据:测试数据: 参考参考数据结构(数据结构(C语言版)语言版)(严蔚敏(严蔚敏 吴伟民吴伟民编著)编著)7.6节图节图7.33的交通图。的交通图。 答辩测试数据:北京到乌鲁木齐;北京到昆明
11、;答辩测试数据:北京到乌鲁木齐;北京到昆明;广州到哈尔滨;乌鲁木齐到南昌;沈阳到昆明。广州到哈尔滨;乌鲁木齐到南昌;沈阳到昆明。选作内容:选作内容: 考虑由于路况不同,不同城市间自驾旅行每百公考虑由于路况不同,不同城市间自驾旅行每百公里油耗不同,为旅行选择最经济路线。里油耗不同,为旅行选择最经济路线。课程设计课程设计pp-12数据结构数据结构题目5 5 内部排序算法的比较内部排序算法的比较 问题问题描述:描述: 通过比较各通过比较各内部排序算法的关键字比较次数和关内部排序算法的关键字比较次数和关键字移动的次数,键字移动的次数,以取得直观感受。以取得直观感受。 基本要求:基本要求: 1、待待排序
12、表的表长不小于排序表的表长不小于100100; 2 2、至少要用、至少要用5 5组不同的输入数据作比较;组不同的输入数据作比较; 3 3、排序算法不少于、排序算法不少于5 5种;种; 4 4、最后要对结果作简单的分析。、最后要对结果作简单的分析。 测试数据:测试数据: 用伪随机数产生程序产生。用伪随机数产生程序产生。 选作内容:选作内容: 对不同的表长做试验分析两个指标相对于表长变对不同的表长做试验分析两个指标相对于表长变化关系。化关系。实实 现现 要要 点点 课程设计课程设计pp-14数据结构数据结构题目1 1 课程设计课程设计pp-15数据结构数据结构多项式的逻辑结构:视为线性表多项式的逻
13、辑结构:视为线性表 数据元素数据元素 (coef,exp) 表示多项式项表示多项式项 coefxexp ,coef是该项的系数,是该项的系数,exp是变是变元元x的指数。的指数。 ( ( 顺序表示顺序表示 线性表长度事先难以确定;线性表长度事先难以确定; 算术运算需插入和删除元素算术运算需插入和删除元素。课程设计课程设计pp-16数据结构数据结构课程设计课程设计pp-17数据结构数据结构 多项式相加多项式相加课程设计课程设计pp-18数据结构数据结构带头结点的线性链表类型(pp37) typedef struct LNode / 结点类型 ElemType data; LNode *next;
14、 *Link,*Position; struct LinkList / 链表类型 Link head,tail; / 分别指向线性链表中的头结点和最后一个结点 int len; / 指示线性链表中数据元素的个数 ; 课程设计课程设计pp-19数据结构数据结构分配由p指向的值为e的结点Status MakeNode(Link &p,ElemType e) / 分配由p指向的值为e的结点,并返回OK; /若分配失败, 则返回ERROR p=(Link)malloc(sizeof(LNode); if(!p) return ERROR; p-data=e; return OK; 释放p所指结点voi
15、d FreeNode(Link &p) / 释放p所指结点 free(p); p=NULL; 课程设计课程设计pp-20数据结构数据结构构造一个空的线性链表Status InitList(LinkList &L) Link p; p=(Link)malloc(sizeof(LNode); / 生成头结点 if (p) p-next=NULL; L.head=L.tail=p; L.len=0; return OK; else return ERROR; 课程设计课程设计pp-21数据结构数据结构销毁线性链表LStatus DestroyList(LinkList &L) / 销毁线性链表L,L
16、不再存在 ClearList(L); / 清空链表 FreeNode(L.head); L.tail=NULL; L.len=0; return OK; 课程设计课程设计pp-22数据结构数据结构将线性链表L重置为空表Status ClearList(LinkList &L) Link p,q; if(L.head!=L.tail) / 不是空表 p=q=L.head-next; L.head-next=NULL; while (p!=L.tail) p=q-next; free(q); q=p; free(q); L.tail=L.head; L.len=0; return OK; 课程设计
17、课程设计pp-23数据结构数据结构将s所指结点插入在第一个结点之前Status InsFirst(LinkList &L, Link h,Link s) / 形参增加L,因为需修改L/ h指向L的一个结点,把h当做头结点,/将s所指结点插入在第一个结点之前 s-next=h-next; h-next=s; if (h=L.tail) / h指向尾结点 L.tail=h-next; / 修改尾指针 L.len+; return OK; 课程设计课程设计pp-24数据结构数据结构删除链表中的第一个结点Status DelFirst(LinkList &L,Link h,Link &q) / 形参增
18、加L,因为需修改L。 h指向L的一个结点, / 把h当做头结点,删除链表中的第一个结点并 / 以q返回。 q=h-next; if (q) /链表非空 h-next=q-next; if(!h-next) L.tail=h; /删除尾结点,修改尾指针 L.len-; return OK; else return FALSE; / 链表空 课程设计课程设计pp-25数据结构数据结构Status Append(LinkList &L,Link s) / 将指针s (s-data为第一个数据元素)所指 (彼此/ 以指针相 链,以NULL结尾)的一串结点链接在/ 线性链表L的最后一个结点之后, 并改变
19、链表L / 的尾指针指向新的尾结点 int i=1; L.tail-next=s; while(s-next) s=s-next; i+; L.tail=s; L.len+=i; return OK; 链接两个单链表链接两个单链表课程设计课程设计pp-26数据结构数据结构返回p所指结点中数据元素的值ElemType GetCurElem(Link p) /已知p指向线性链表中的一个结点, /返回p所指结点中数据元素的值 return p-data; 判断线性链表判断线性链表L为空表为空表Status ListEmpty(LinkList L) / 若线性链表L为空表,则返回TRUE,否则返回F
20、ALSE if (L.len) return FALSE; else return TRUE; 课程设计课程设计pp-27数据结构数据结构返回线性链表L中头结点的位置Position GetHead(LinkList L) / 返回线性链表L中头结点的位置 return L.head; 返回p所指结点的直接后继的位置 Position NextPos(Link p) / 已知p指向线性链表L中的一个结点, / 返回p所指结点的直接后继的位置 / 若无后继,则返回NULL return p-next; 课程设计课程设计pp-28数据结构数据结构LocateElem:判定升序链表L中是否存在与e相
展开阅读全文