我想计算二叉树的高度,而不是使用占用每个叶子最大深度的算法。
这是我在eache节点上的结构
[content, left_son, right_son, father_node]
表示每个节点的大小为4的数组列表。 left_son,right_son和father分别是列表中左子节点,右子节点和父节点的索引
答案 0 :(得分:0)
这确实可行,但您必须稍微修改数据结构: 您可以将二进制树存储在这样的数组中:
如果你这样做
所以你要做的就是跟踪最后一次使用的"数组中的索引并使用上面的公式计算高度。
2^(h+1)-1 = l => h = ceil(ld(l+1))-1
你是有效使用的数组的长度,并用对数2表示对数。