二叉树_顺序存储

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二叉树_顺序存储相关的知识,希望对你有一定的参考价值。

参考技术A

满二叉树 (Full Binary Tree)
所有分支结点都有存在左子树和右子树,并且所有叶子结点都在同一层上。
完全二叉树 (Complete Binary Tree)
如果一棵具有n个结点的二叉树与满二叉树的前n个结点的结构相同,则称这棵二叉树为完全二叉树。

重要性质
对于一棵有n个结点的 完全二叉树 的结点按照从上至下和从左至右的顺序对所有结点从零开始到 n-1 进行顺序编号,则对于序号为i的结点(0≤i≤n),有:
(1)如果 i=0,则结点i是二叉树的根;如果i>0,则其 双亲 是结点 (i-1)/2 (整除)。
(2)如果2i+1≥n,则结点i无左孩子;否则,其 左孩子 是结点 2i+1
(3)如果2i+2≥n,则结点i无右孩子;否则,其 右孩子 是结点 2i+2

根据上面两点,得到二叉树顺序存储的实现:

定义:

获取双亲节点下标:

左子节点下标:

右子节点下标:

主函数测试:

总结:
1、对于完全二叉树或接近于完全的二叉树,用顺序存储可以省空间简化操作;否则,都不适宜用顺序存储。
2、顺序存储结构通病:必须预先给出数组的存储空间大小MaxSize。

以上是关于二叉树_顺序存储的主要内容,如果未能解决你的问题,请参考以下文章

二叉树顺序存储和遍历

顺序存储二叉树

顺序存储构建的二叉树转换成链式存储二叉树

顺序存储构建的二叉树转换成链式存储二叉树

数据结构_011_二叉树的创建和遍历

JAVA数据结构与算法之顺序存储二叉树