网站大量收购独家精品文档,联系QQ:2885784924

《数据结构课程设计-关于最短路径问题+二叉树排序问题》.doc

《数据结构课程设计-关于最短路径问题+二叉树排序问题》.doc

  1. 1、本文档共35页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
课程设计综合成绩评定 设计题目一: 二 叉 排 序 树设计题目二: 最 短 路 径 问 题设计题目三:考核项目 分值 A C 得分 设计情况(共70分) 设计工作量与难度 20 设计工作量大与设计有一定难度 设计工作量与难度一般,基本达到了要求 设计 方案 15 设计方案正确、合理 设计方案较正确、基本合理,但不是最优 设计完成情况 35 完成了选题的设计内容,设计功能完整,相关算法设计正确,程序结果正确、直观性好 基本完成了选题的设计内容及主要选题功能,相关算法设计基本正确,程序结果正确 设计报告(共15分) 报告组织结构及内容 10 内容组织及结构合理、内容充实、层次清晰、图表得当 内容组织及结构较合理、内容较充实、层次较清晰、图表应用基本得当 报告排版格式 5 格式规范,完全符合要求 格式基本规范,基本符合要求 设计态度 (共15分) 15 设计态度认真、积极 设计态度比较认真 综合得分 课程设计综合成绩(折合为优、良、中、及格与不及格计) 其它说明:目 录 1.二叉排序树 1 1.1 问题描述 1 1.2 设计方案与概要设计 2 1.3 详细设计 4 1.4 程序运行说明与结果 11 2.最短路径问题 13 2.1 问题描述 13 2.2 设计方案与概要设计 16 2.3 详细设计 17 2.4 程序运行说明与结果 27 3.总结与分析 321. 二叉排序树 1.1 问题描述 知二叉排序树的二叉链表存储结构的类型定义如下: typedef struct node{int data;//用整数表示一个结点的名struct node *LChild,*RChild; //左右指针域 }BSTNode,*BSTree; (1)键盘输入一个元素序列创建一棵如图(1)的二叉排序树,并输出该二叉排序树的中序遍历序列;图(1)(2)在图(1)中所得的二叉排序树中插入一个值为58的结点,输 出它的中序遍历序列;(3)在题(2)中所得的二叉排序树中删除值为45的结点,输出它的中序遍历序列; (4)我们知道教材中P220给出的二叉排序树的删除操作算法中,是用左子树中最右下结点来替代要被删除的结点(即为要被删除结点的中序前驱),也可以用右子树中最左下结点来替代要被删除的结点(即为要被删除结点的中序后继),根据此思路修改P220算法在写一个删除操作,并利用修改后的删除算法删除图(1)中二叉排序树的值为45的结点,输出它的中序遍历序列; (5)利用题(2)中所得的二叉排序树的所有叶子结点构造一个带头结点的单链表L。要求不能破坏这棵二叉排序树。所得的单链表L元素递增,并输出单链表L。 (6)设计算法将图(1)的二叉排序树的左右子树进行交换。最后输出所得到的二叉树的中序遍历序列。 所得二叉排序树如图所示:图(2) (7)用计算法统计并输出图(1)中所得的二叉排序树中只有一个孩子结点的结点个数。 (8)由图(1)的二叉排序树,用计算法并编写程序输出结点40的所有祖先结点。 1.2 设计方案与概要设计 二叉排序树应用的存储结构typedef struct node{// 二叉排序树的存储结构int data;struct node *LChild,*RChild;}BSTNode,*BSTree; typedef struct LNode{//单链表的存储结构int data;struct LNode *next;}LNode,*LinkList; 二叉排序树的设计用到了单链表L。 单链表L主要用于题(5)的设计,用来存储图(1)的二叉排序树中所有叶子结点,并将其输出。 2.方案设计 本方案设计主要应用二叉树的性质。创建空二叉排序树T,再输入图(1)中的元素后向T插入所有元素,在插入时比根结点小的放在树的左子树,比根结点大则放在树的右子树,同时树的左右子树也要遵循这个规律。 在删除操作中当只有一个结点时可直接删除,否则用左子树中最右下结点来替代要被删除的结点进行删除操作,亦可用右子树中最左下结点来替代要被删除的结点进行删除操作,可视为同种删除方法。 寻找叶子节点时主要采用递归方法,从根结点开始遍历当发现结点无左右孩子时则得到当前的结点元素并用尾插法将其放入单链表中直至遍历完毕,最后输出单链表L。 在二叉排序树进行左右子树交换时新创建树R避免对树T的干扰,把树T复制给树R,调用树R采用递归法和交换法进行左右子树的交换。 寻找只有一个孩子结点的结点个数时也是采用递归法,从根结点开始遍历当发现结点只有左孩子或右孩子是则计数加1直至遍历完毕,输出最后的计数。 在取某元素的祖先结点时,从根结点与该元素对比并寻找该元素,其所走路径即为该元素的祖先结点路径,因此用数组将该路径存储起

文档评论(0)

lipinting + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档