- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
根中与后根构造二叉树与二叉树的匹配替换-数据结构课程设计--本科毕业设计论文
成绩
南京工程学院
课程设计说明书(论文)
题 目中根与后根构造二叉树与二叉树的匹配替换
课 程 名 称 数据结构
院(系、部、中心) 计算机工程学院
专 业 计算机科学与技术
班 级 计算机卓越131
学 生 姓 名 羌秀君
学 号 202130404
设 计 地 点 信息楼
指 导 教 师 叶核亚
设计起止时间:2016年5月10日至2016年5月20日
一、课程设计目的和要求
目的:深入理解数据结构的基本理论,掌握数据存储结构的设计方法,掌握基于数据结构的各种操作的实现方法,训练对基础知识和基本方法的综合运用能力,增强对算法的理解能力,提高软件设计能力。在实践中培养独立分析问题和解决问题的作风和能力。
要求:熟练运用C++语言、基本数据结构和算法的基础知识,独立编制一个具有中等难度的、解决实际应用问题的应用程序。通过题意分析、选择数据结构、算法设计、编制程序、调试程序、软件测试、结果分析、撰写课程设计报告等环节完成软件设计的全过程,不断地完善程序以提高程序的性能。
二、题意说明及分析
题目要求采用中根和后根序列构造一颗二叉树,并匹配替换二叉树的子树。
中根和后根构造:
由于后根可以确定一颗树的根,而中根在知道根的情况下可以确定左右子树的序列,因此这样递归,中根和后根可以确定一颗唯一的二叉树。
匹配替换二叉树:
通过遍历二叉树找到关键树根值在待匹配树中首次出现的位置,返回节 点地址。
判断以找到的节点为根的子树和带匹配的树是否相同,采用递归算法。
确定以找到根节点的子树与带匹配的树相同,然后删除以此为根节点的 子树,然后再将带替换的树复制到删除的节点。
三、算法设计与分析
算法设计思路、数据结构描述、流程图等
中根和后根构造算法:
设数组inlist[]和lalist[]分别表示一颗二叉树的中根和后根序列,两序列长度均为n。
1.由后根遍历的次序可知,该二叉树的根是lalist[n-1];改节点必定在中根次序中,设根节点在中根次序的第i个位置即inlist[i]=lalist[n-1]。
2.由中根遍历次序知,inlist[i]节点前的节点在根的左子树上,inlist[i]后的所有节点在根节点的右子树上。
因此,根的左子树由i个节点组成,子序列为:
左子树的后根次序 lalist[0]....lalist[i-1]
左子树的中根次序inlist[0]...inlist[i-1]
根的右子树由n-j-1个节点,子序列为:
右子树的后根次序 lalist[i]...lalist[n-2]
右子树的中根次序 inlist[i+1]...inlist[n-1]
以此递归,可唯一确定一颗二叉树。
算法实现:
templateclass T
BinaryTreeT::BinaryTree(T lalist[],T inlist[],int n){
this-root=create(lalist,inlist,n-1,n-1,n,root);
}
templateclass T
BinaryNodeT* BinaryTreeT::create(T lalist[],T inlist[],int end,int inend,int n,BinaryNodeT*parent){
BinaryNodeT*p=NULL;
if (n0)
{
p=new BinaryNodeT(lalist[end]);
int i=0;
while(inlalist[end]!=inlist[inend-i])
i++;
p-parent=parent;
p-right=create(lalist,inlist,end-1,inend,i,p);
p-left=create(lalist,inlist,end-i-1,inend-i-1,n-i-1,p);
}
return p;
}
匹配替换二叉树算法:
通过遍历二叉树找到关键树根值在待匹配树中首次出现的位置,返回节 点地址。
判断以找到的节点为根的子树和带匹配的树是否相同,采用递归算法。
确定以找到根节点的子树与带匹配的树相同,然后删除以此为根节点的 子树,然后再将带替换的树复制到删除的节点。
算法实现:
//查找根节点
templateclass T
BinaryNodeT* BinaryTreeT::searchhead(BinaryNodeT*q,Bina
您可能关注的文档
- 尔凯顿国际大酒店项目弱电设计方案说明--本科毕业设计论文.doc
- 法拉基瑞安水泥有限公司窑中控操作岗位作业指导书--本科毕业设计论文.doc
- 法拉基瑞安水泥有限公司预热器巡检岗位作业指导书--本科毕业设计论文.doc
- 发明滨江新城施工组织设计方案说明文本--本科毕业设计论文.doc
- 房泵施工方案设计--本科毕业设计论文.doc
- 房机收费管理系统-详细设计说明书--本科毕业设计论文.doc
- 粉淀加工现状安全预评价报告--本科毕业设计论文.doc
- 份股有限公司清洁生产挖潜改造项目铺设外购中压蒸汽管道工程施工组织设计方案说明文本--本科毕业设计论文.doc
- 粪牛便好氧发酵堆肥工艺综合控制解决方案全套--本科毕业设计论文.doc
- 丰富水泥能源审计报告--本科毕业设计论文.doc
最近下载
- 零星维修工程施工技术方案(可编辑Word完整版).pdf
- [2018年最新整理]3电气安装强制性条文(变电站).doc
- 历代名画记翻译历代名画记片段翻译.doc VIP
- 年产5万吨有机肥建设项目可行性研究报告模板-立项拿地.doc
- 流程管理与流程成熟度培训(含附表).pptx VIP
- 全球及中国飞机辅助动力装置行业市场现状供需分析及市场深度研究发展前景及规划可行性分析研究报告(2024-2030).docx
- 血气分析及肺功能检查.pptx VIP
- 五邑大学2022-2023学年第2学期《高等数学(下)》期末试卷(A卷)附标准答案.pdf
- 《亚当理论》.pdf
- 食品检测对食品安全的重要意义研究.docx
文档评论(0)