【问题标题】:Binary Trees Height and Complexity Correlation二叉树高度和复杂度相关性
【发布时间】:2015-09-14 03:56:43
【问题描述】:

孤立节点是没有兄弟节点的节点。单个节点的父节点没有其他子节点。

如果我们将 f(x) 定义为:

(二叉树x中的孤节点数)/(x中的总节点数)

如果 f(x)

【问题讨论】:

  • 请定义“孤节点”
  • 对不起,孤立节点是没有兄弟节点的节点。孤节点的父节点没有其他子节点

标签: tree binary-tree big-o binary-search-tree


【解决方案1】:

不,不是。考虑一个完全不平衡的二叉树:

/\
 /\
  /\
   /\
    /\
     /\
      /\

这里只有一个“孤”节点,即根。 (甚至不清楚它是否孤独,因为它没有父母?)高度是O(n),而不是O(log n)

【讨论】:

  • 谢谢 Chris,但不是所有这些节点都是“孤”节点,因为它们都没有兄弟姐妹吗?他们有孩子,但这与定义无关。此外,假设根不是孤立节点,因为它没有父节点,您是正确的
  • 嗯,根据你的定义,我认为他们都有兄弟姐妹。它们中的每一个(根除外)都是上图中像“/\”这样的行的左边或右边。所以左边是右边的兄弟,右边是左边的兄弟。他们都不是其父母的唯一孩子。所以根据你写的定义,没有一个是孤独的。
  • 另一种说法:图片中的每个节点要么有 0 个孩子,要么有 2 个孩子。只有当有一个节点正好有 1 个子节点时,才会发生孤立节点。所以没有孤立的节点。
  • 我明白你的意思,但是在我正在阅读的教科书中,我感觉它们是指树的同一“级别”上的节点。这是我正在阅读的教科书中的一个练习题,问题是“为什么这是真的”而不是“为什么或为什么不,解释一下”
  • 好吧,那么我认为您没有准确理解这些定义。这是您所说的问题的正确答案。
【解决方案2】:
\
 \
 /\

n = 5
h(x) = 4
f(x) = 2/5 = 0.4 < 0.5
log(5)< 3 < 4 = h(x)

上面的例子是对以下说法的反例:
如果f(x) &lt;= 0.5 那么h(x) = O(log n):

有 4 个节点(根除外),其中 2 个是“孤节点”,另外两个不是。这意味着满足条件f(x) &lt;= 0.5,因为f(x) = 2/5 = 0.4 &lt; 0.5

但如果我们检查高度,我们会发现它是 4,大于 log(5) = O(log n)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-07
    • 2022-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多