【发布时间】:2012-05-30 02:21:21
【问题描述】:
我有一棵完美的二叉树,即树中的每个节点要么是叶节点,要么有两个子节点,所有叶节点都在同一级别。每个节点都有一个深度优先的索引。
(例如,在具有 3 层的树中,根节点的索引为 0,第一个孩子有 1,第一个孩子的第一个孩子有 2,第一个孩子的第二个孩子有 3,第二个孩子有 4,第二个孩子的第一个孩子有 5,第二个孩子的第二个孩子有索引 6。
0
/ \
1 4
/ \ / \
2 3 5 6
)
我知道树的大小(节点数/最大级别),但只知道特定节点的索引,我需要计算它的级别(即它到根节点的距离)。我怎样才能最有效地做到这一点?
【问题讨论】:
-
这不是二叉树,如果一个节点可以有 >2 个子节点。
-
请阅读问题:“这是深度优先的,但不是完美的二叉树”
-
你还需要知道节点总数,否则级别可能无法计算。
-
@nsinreal 好吧,这个问题具有误导性。它声明“我有一棵完美的二叉树”和“这是深度优先的,但不是一棵完美的二叉树”
-
@Justin 好吧,这只是深度优先顺序的一个例子
标签: algorithm binary-tree depth-first-search