二进制搜索树中的叶子数

时间:2014-11-05 17:42:30

标签: algorithm binary-search-tree

有没有办法确切知道二叉搜索树中有多少个叶子?就像有一些公式总能找到?例如,如果BST中有100个节点,您是否可以使用该值(n = 100)来查找有多少个叶子?

2 个答案:

答案 0 :(得分:1)

设T为二叉树,n> 0个节点。

  • 如果T达到最大平衡,那么T有⌈n/2⌉=(n + 1)// 2叶节点,
    其中//表示整数除法。

  • 如果T是最小平衡的,则T有1个叶节点。

  • 如果T有m片叶子,那么1≤m≤⌈n/2⌉。

答案 1 :(得分:1)

It depends on the type of tree in question.

对于任何一般的“二进制搜索树”,没有进一步的说明或信息,我们无法确定。

它可以是

的任何地方
  • 只是一个(1)叶子(除了最后一个节点之外的所有节点只有一个子节点 - 实际上是一个链表)
  • 最多为[(n + 1)/ 2]个叶子(其中所有节点,除叶子外,每个节点都有2个子节点。)

树的类型可以定义它有多少叶子。例如,上面,后者是“完整”二叉树的定义。