码迷,mamicode.com
首页 > 编程语言 > 详细

完全二叉树一维数组存放的结点相关关系

时间:2018-11-06 00:47:29      阅读:210      评论:0      收藏:0      [点我收藏+]

标签:表示   顺序   完全二叉树   pre   层次遍历   二叉树   相关   编号   key   

对于完全二叉树,如果将其中的元素按层次遍历顺序存放入一个一维数组中:
设数组大小为n(节点数为n),节点标号(key)为数组下标i,即0,1,2,3,4,,,
那么:
1.完全二叉树的高度为: ceil(log2(n+1))
2.i = 0: 根节点,root,无父节点。
i >= 1: 父节点为 floor((i-1)/2);
3.若2*i<n-1: 节点i的左子女为 2*i + 1
若2*i<n-2: 节点i的右子女为 2*i + 2
4.若节点编号 i 为奇数,i != 1, 它处于右兄弟位置,则它的左兄弟为节点 i-1
5.若节点编号 i 为偶数,i != 1, 它处于左兄弟位置,则它的右兄弟为节点 i+1
6.节点i所在的层次为 floor(log2(i-1))+1;

注意:如果下标表示为1,2,3,,,要注意变换。

完全二叉树一维数组存放的结点相关关系

标签:表示   顺序   完全二叉树   pre   层次遍历   二叉树   相关   编号   key   

原文地址:https://www.cnblogs.com/XT-xutao/p/9912241.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!