- 1、本文档共11页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构二叉树的实验报告
数据结构实验报告1.实验目的和内容:掌握二叉树基本操作的实现方法2.程序分析2.1存储结构链式存储2.程序流程2.3关键算法分析算法一:Create(BiNodeT* R,T data[],int i,int n)【1】算法功能:创建二叉树【2】算法基本思想:利用顺序存储结构为输入,采用先建立根结点,再建立左右孩子的方法来递归建立二叉链表的二叉树【3】算法空间时间复杂度分析:O(n)【4】代码逻辑:如果位置小于数组的长度则{创建根结点将数组的值赋给刚才创建的结点的数据域创建左子树,如果当前结点位置为i,则左孩子位置为2i创建右子树,如果当前结点位置为i,则右孩子位置为2i+1 }否则R为空算法二:CopyTree(BiNodeT*sR,BiNodeT* dR))【1】算法功能:复制构造函数【2】算法基本思想:按照先创建根结点,再递归创建左右子树的方法来实现。【3】算法空间时间复杂度分析:O(n)【4】代码逻辑:如果源二叉树根结点不为空则{创建根结点调用函数自身,创建左子树调用函数自身,创建右子树 }将该函数放在复制构造函数中调用,就可以实现复制构造函数算法三:PreOrder(BiNodeT*R)【1】算法功能:二叉树的前序遍历【2】算法基本思想:这个代码用的是优化算法,提前让当前结点出栈。【3】算法空间时间复杂度分析:O(n)【4】代码逻辑(伪代码)如果当前结点为非空,则 {访问当前结点当前结点入栈将当前结点的左孩子作为当前结点}如果为空{则栈顶结点出栈则将该结点的右孩子作为当前结点 }反复执行这两个过程,直到结点为空并且栈空算法四:InOrder(BiNodeT*R)【1】算法功能:二叉树的中序遍历【2】算法基本思想:递归【3】算法空间时间复杂度分析:未知【4】代码逻辑:如果R为非空:则调用函数自身遍历左孩子访问该结点再调用自身访问该结点的右孩子算法五:LevelOrder(BiNodeT*R)【1】算法功能:二叉树的层序遍历【2】算法基本思想:【3】算法空间时间复杂度分析:O(n)【4】代码逻辑(伪代码):若根结点非空,入队如果队列不空{对头元素出队访问该元素若该结点的左孩子为非空,则左孩子入队;若该结点的右孩子为非空,则右孩子入队; }算法六:Count(BiNodeT*R)【1】算法功能:计算结点的个数【2】算法基本思想:递归【3】算法空间时间复杂度分析:未知【4】代码逻辑:如果R不为空的话{调用函数自身计算左孩子的结点数调用函数自身计算右孩子的结点数 } templateclass T int BiTreeT::Count(BiNodeT*R) {if(R==NULL)return 0;else{int m=Count(R-lchild);int n=Count(R-rchild);return m+n+1; } }算法七:Release(BiNodeT*R)【1】算法功能:释放动态内存【2】算法基本思想:左右子树全部释放完毕后再释放该结点【3】算法空间时间复杂度分析:未知【4】代码逻辑:调用函数自身,释放左子树调用函数自身,释放右子树释放根结点释放二叉树 templateclass T void BiTreeT::Release(BiNodeT*R) {if(R!=NULL){Release(R-lchild);Release(R-rchild);delete R; } } templateclass T BiTreeT::~BiTree() {Release(root); } int main() {int a[10]={1,2,3,4,5,6,7,8,9,10};BiTreeint BTree(a,10);BiTreeintTree(BTree);BTree.PreOrder(BTree.root);coutendl;Tree.PreOrder(Tree.root);coutendl;BTree.InOrder(BTree.root);coutendl;Tree.InOrder(Tree.root);coutendl;BTree.PostOrder(BTree.root);coutendl;Tree.PostOrder(Tree.root);coutendl;BTree.LevelOrder(BTree.root);coutendl;Tree.LevelOrder(Tree.root);coutendl;int m=BTree.Count(BTree.root);coutmendl;return 0; }3.测试数据:
您可能关注的文档
- 数字的基数词和序数词的用法练习.docx
- 数字系统组成与设计实验2存储器HQU2018.pdf
- 数字音乐听赏与歌唱案例解析-Eduoffice数字音乐教学仪.docx
- 数学(工程问题)教学案一、基本知识篇.docx
- 数学(工程问题)教学案二、基本技能篇.docx
- 数学一上《认识图形》教学设计.doc
- 数学-初三-圆的相关概念与垂径定理.docx
- 数学一到四单元同步练习.docx
- 数学一年级百题练习题(三套至四十套).docx
- 数学三年级学期教学计划及单元教学计划.doc
- 2023-2024学年广东省深圳市龙岗区高二(上)期末物理试卷(含答案).pdf
- 2023-2024学年贵州省贵阳市普通中学高一(下)期末物理试卷(含答案).pdf
- 21.《大自然的声音》课件(共45张PPT).pptx
- 2023年江西省吉安市吉安县小升初数学试卷(含答案).pdf
- 2024-2025学年广东省清远市九校联考高一(上)期中物理试卷(含答案).pdf
- 广东省珠海市六校联考2024-2025学年高二上学期11月期中考试语文试题.pdf
- 2024-2025学年语文六年级上册第4单元-单元素养测试(含答案).pdf
- 2024-2025学年重庆八中高三(上)月考物理试卷(10月份)(含答案).pdf
- 安徽省安庆市潜山市北片学校联考2024-2025学年七年级上学期期中生物学试题(含答案).pdf
- 贵州省部分校2024-2025学年九年级上学期期中联考数学试题(含答案).pdf
最近下载
- 2023年华东师范大学数据科学与大数据技术专业《操作系统》科目期末试卷A(有答案).docx VIP
- 2023年华东师范大学数据科学与大数据技术专业《操作系统》科目期末试卷B(有答案).docx VIP
- 2023年华东师范大学计算机科学与技术专业《操作系统》科目期末试卷A(有答案).docx VIP
- 人防通风系统安装施工方案管理文档.doc
- 标准图集 - 12J003 室外工程.pdf VIP
- 北师大版六年级数学上册3-3《天安门广场》教学设计.doc
- 东北财经大学通用PPT模板.pptx
- 屋盖钢结构设计讲课教案.pdf VIP
- 社会情感教育与教学质量改进.pptx
- 2024年华医网继续教育护理学基于循证理念的临床护理管理实践新进展题库及答案.docx VIP
文档评论(0)