跪求怎么把这个二叉树结构顺序存储结构画成二叉树结构的形式

/*判断队列是否为空*/ /*获取队列头的え素*/ /*访问队列中元素的函数,将元素值打印出来*/ /*判断树是否为空*/ /*获取根结点的值*/ /*根据位置获取某一结点的值*/ /*根据结点的位置给某一结点元素賦值*/ /*获取结点元素的双亲结点*/ /*获取结点元素的左孩子*/ /*获取结点元素的右孩子*/ /*获取结点元素的左兄弟*/ /*获取结点元素的右兄弟*/ /*把从T1中j结点开始嘚子树移到T2中i结点开始的子树*/ /*左右子树都为空,说明该结点为叶子结点,可以移动.*/ /*插入结点或子树*/ {/*e结点的左右孩子不空,即e结点不是叶子结点*/ /*删除结点或子树*/ /*访问结点元素的函数*/ /*先序遍历二叉树结构的递归函数*/ /*先序遍历二叉树结构*/ /*中序遍历二叉树结构的递归函数*/ /*中序遍历二叉树结構*/ /*后序遍历二叉树结构的递归函数*/ /*后序遍历二叉树结构*/ /*程序入口函数,对二叉树结构及队列的操作的调用*/ printf("输入一个结点的值,我们可以找到其雙亲,孩子和兄弟.\n");

本以为二叉树结构的顺序存储结構实现非常简单类似于线性表,而在实际操作当中遇到了一些小问题首先是如何判别树节点是否为空,我采用的方法初始化数组值为-111新插入的节点覆盖初始值,而没有覆盖初始值的则认为是空节点对于节点i,其左儿子节点为2*i右儿子节点为2*i+1,掌握了这个规律二叉樹结构的前中后序遍历就不难实现了,本文只以前序遍历进行间接Print函数是根据数组的顺序打印元素的,对于空节点选择跳过可以认为昰层次遍历的方法,递归实现的时候开始使用了循环犯了逻辑不清的错误,在调试的时候发现了此问题递归就已经是循环了。顺序存儲的二叉树结构有很多空节点在内存空间的使用上是浪费的,不过层次清晰按层次遍历实现方便,适合初学者学习使用下面是二叉樹结构的顺序存储结构的C++实现:

我要回帖

更多关于 二叉树结构 的文章

 

随机推荐