- 1、本文档共15页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
浙江大学城市学院实验报告
课程名称数据结构基础
实验项目名称实验十二叉树的基本操作
学生姓名专业班级学号
实验成绩指导老师(签名)日期
实验目的和要求
1、掌握二叉树的链式存储结构。
2、掌握在二叉链表上的二叉树操作的实现原理与方法。
3、进一步掌握递归算法的设计方法。
实验内容
1、建立头文件test10.h,在该文件中定义二叉树的链式存储结构,并编写二叉树的各种基本操作实现函数。同时建立一个验证操作实现的主函数文件test10.cpp,编译并调试程序,直到正确运行。注意:需要用到栈和队列的有关操作。
说明:二叉树的基本操作可包括:
(1)voidInitBTree(BTreeNode*BT)//初始化二叉树BT
(2)voidCreateBTree(BTreeNode*BT,char*a)
//根据字符串a所给出的广义表表示的二叉树建立二叉链表存储结构
(3)intEmptyBTree(BTreeNode*BT)
//检查二叉树BT是否为空,空返回1,否则返回0
(4)intDepthBTree(BTreeNode*BT)//求二叉树BT的深度并返回该值
(5)intFindBTree(BTreeNode*BT,ElemTypex)
//查找二叉树BT中值为x的结点,若查找成功返回1,否则返回0
(6)voidPreOrder(BTreeNode*BT)//先序遍历二叉树BT
(7)voidInOrder(BTreeNode*BT)//中序遍历二叉树BT
(8)voidPostOrder(BTreeNode*BT)//后序遍历二叉树BT
(9)voidLevelOrder(BTreeNode*BT)//按层次遍历二叉树BT
(10)voidPrintBTree(BTreeNode*BT)//输出二叉树BT
(11)voidClearBTree(BTreeNode*BT)//清除二叉树BT
2、以下内容为第二次实验完成:
(1)请编写函数实现中序遍历的非递归算法。将此函数输入到前述头文件test10.h中,并在主函数文件test10.cpp中增加测试语句测试这个函数的正确性。注意需要用到栈的有关操作。
提示:二叉树中序遍历的非递归算法就是运用栈这种数据结构将递归的中序遍历转换成非递归的中序遍历,采用的是间接转换方式。中序遍历非递归算法的N-S流程图如下:
注意:栈中存放的应该是指向结点的指针,即结点的地址,而不是结点的值。因为,只有根据结点的地址才能在二叉树中查找到该结点。
(2)完成以下算法的设计,并将这些函数输入到前述头文件test10.h中,在主函数文件test10.cpp中增加测试语句测试其正确性。
(a)将二叉树中的所有结点的左右子树进行交换,函数原型如下:
voidChangeBTree(BTreeNode*BT);
(b)统计二叉树中的所有结点数,函数原型如下:
intCountBTree(BTreeNode*BT);
(c)复制一棵二叉树,并返回复制得到的二叉树根结点指针,函数原型如下:
BTreeNode*CopyBTree(BTreeNode*BT);
(d)如果两棵二叉树具有相同的树型,则称它们是相似的。请编写函数实现判断两棵树是否相似。函数原型为:
intSimilarTrees(BTreeNode*BT1,BTreeNode*BT2)
(e)摘树叶:摘除一棵二叉树上的所有叶子结点后返回一棵新的二叉树。函数原型为:
BTreeNode*RemoveLeaves(BTreeNode*BT1)
3、填写实验报告,实验报告文件取名为report10.doc。
4、上传实验报告文件report10.doc、源程序文件test10.cpp及test10.h到Ftp服务器上(40:5000)自己的文件夹下。
三.函数的功能说明及算法思路
(包括每个函数的功能说明,及一些重要函数的算法实现思路)
函数功能说明:
(1)voidInitBTree(BTreeNode*BT
您可能关注的文档
- 2021年人教部编版五年级语文下册第三单元检测卷及答案.docx
- 2022年普通高等学校招生全国统一考试(新高考全国Ⅰ卷)-数学真题第22题题目及答案.docx
- 2023-2024学年度第一学期期中考试六年级数学试卷.doc
- 成都电子科技大学2007年(秋)软件工程硕士研究生试题软件基础年考研真题考研试题.doc
- 地铁竣工资料交接表.doc
- 第二章-劳动合同与社会保险法律制度.doc
- 钢结构单层厂房施工组织设计之欧阳法创编.doc
- 广东二级建造师2023分数线.docx
- 国家司法考试(卷三)模拟试卷56(题后含答案及解析).doc
- 过水箱涵旁站方案.docx
- 四川省德阳市罗江中学2025届高三考前热身化学试卷含解析.doc
- 山东省枣庄现代实验学校2025届高三下学期第五次调研考试化学试题含解析.doc
- 吉林省长春市十一高中等九校教育联盟2025届高三一诊考试生物试卷含解析.doc
- 2025届江苏省盐城市伍佑中学高考仿真模拟化学试卷含解析.doc
- 2025届广西贺州中学高考冲刺押题(最后一卷)生物试卷含解析.doc
- 安徽省池州市贵池区2025届高三第一次模拟考试生物试卷含解析.doc
- 宁夏银川一中2025届高三(最后冲刺)化学试卷含解析.doc
- 广东省广州市增城区四校联考2025届高考压轴卷化学试卷含解析.doc
- 2025届邯郸市第一中学高考生物必刷试卷含解析.doc
- 2025届安徽省安庆市石化第一中学高考仿真卷化学试卷含解析.doc
文档评论(0)