数据结构二叉树的实验报告

数据结构二叉树的实验报告

ID:22287399

大小:134.00 KB

页数:10页

时间:2018-10-28

数据结构二叉树的实验报告_第1页
数据结构二叉树的实验报告_第2页
数据结构二叉树的实验报告_第3页
数据结构二叉树的实验报告_第4页
数据结构二叉树的实验报告_第5页
资源描述:

《数据结构二叉树的实验报告》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、数据结构实验报告1.实验目的和内容:掌握二叉树基本操作的实现方法2.程序分析2.1存储结构链式存储2.程序流程2.3关键算法分析算法一:Create(BiNode*&R,Tdata[],inti,intn)【1】算法功能:创建二叉树【2】算法基本思想:利用顺序存储结构为输入,采用先建立根结点,再建立左右孩子的方法来递归建立二叉链表的二叉树【3】算法空间时间复杂度分析:O(n)【4】代码逻辑:如果位置小于数组的长度则{创建根结点将数组的值赋给刚才创建的结点的数据域创建左子树,如果当前结点位置为i,则左孩子位置为2i创建右

2、子树,如果当前结点位置为i,则右孩子位置为2i+l}否则R为空算法二:CopyTree(BiNode*sR,BiNode*&dR))【1】算法功能:复制构造函数【2】算法基本思想:按照先创建根结点,再递归创建左右子树的方法来实现。【3】算法空间时间复杂度分析:0(n)【4】代码逻辑:如果源二叉树根结点不为空则{创建根结点调用函数自身,创建左子树调用函数自身,创建右子树}将该函数放在复制构造函数中调用,就可以实现复制构造函数算法三:PreOrder(BiNode

3、基本思想:这个代码用的是优化算法,提前让当前结点出栈。【3】算法空间时间复杂度分析:0(n)【4】代码逻辑(伪代码)如果当前结点为非空,则{访问当前结点当前结点入栈将当前结点的左孩子作为当前结点}如果为空{则栈顶结点出栈则将该结点的右孩子作为当前结点}反复执行这两个过程,直到结点为空并且栈空算法四:InOrder(BiNode*R)【1】算法功能:二叉树的中序遍历【2】算法基本思想:递归【3】算法空间时间复杂度分析:未知【4】代码逻辑:如果R为非空:则调用函数自身遍历左孩子访问该结点再调用自身访问该结点的右孩子算法五:

4、LevelOrder(BiNode*R)【1】算法功能:二叉树的层序遍历【2】算法基本思想:【3】算法空间时间复杂度分析:0(n)【4】代码逻辑(伪代码):若根结点非空,入队如果队列不空{对头元素出队访问该元素若该结点的左孩子为非空,则左孩子入队;若该结点的右孩子为非空,则右孩子入队;}算法六:Count(BiNode*R)【1】算法功能:计算结点的个数【2】算法基本思想:递归【3】算法空间时间复杂度分析:未知【4】代码逻辑:如果R不为空的话{调用函数自身计算左孩子的结点数调用函数自身计算右孩子的结点数}temp

5、lateintBiTreelchild);intn=Count(R->rchild);returnm+n+1;}算法七:Release(BiNode*R)【1】算法功能:释放动态内存【2】算法基本思想:左右子树全部释放完毕后再释放该结点【3】算法空间时间复杂度分析:未知【4】代码逻辑:调用函数自身,释放左子树调用函数自身,释放右子树释放根结点释放二叉树template

6、>voidBiTree::Release(BiNode*R){if(R!=NULL){Release(R->lchild);Release(R->rchild);deleteR;}}templateBiTree::〜BiTree(){Release(root);}intmain()inta[10]={l,2,3,4,5,6,7,8,9,10};BiTreeBTree(a,10);BiTree

7、ut«endl;Tree.PreOrder(Tree.root);cout«endl;BTree.InOrder(BTree.root);cout«endl;Tree.InOrder(Tree.root);cout«endl;BTree.PostOrder(BTree.root);cout«endl;Tree.PostOrder(Tree.root);cout«endl;BTree.LevelOrder(BTree.root);cout«endl;Tree.LevelOrder(Tree.root);cout«endl;in

8、tm=BTree.Count(BTree.root);cout«m«endl;return0;}1.测试数据:inta[10]={l,2,3,4,5};124531245342513452311234552.总结:4丄这次实验大多用了递归的算法,比较好理解。4.2:新得体会:在创建二叉树的

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。