我认为完整的k-ary树的哪个定义更合适?

时间:2016-05-04 23:01:35

标签: algorithm tree binary-tree clrs

从CLRS书中考虑以下对完整k-ary树的定义:

  

定义: 完整的k-ary树 k -ary树,其中所有树叶都具有相同的深度和所有内部节点有学位 k 。 (p.1179)

由于这个定义,我认为下一个二进制树是完整的

CLRS Completed Binary Tree

但是基于完整树的这个answer定义(完整的二叉树, k -ary tree的特定情况),

  

一个二叉树,其中除最深处之外的每个级别都被完全填充。在深度 n ,树的高度,所有节点必须尽可能远。

与Grimaldi的离散数学书(p.601)中出现的相同,我们认为下面的有根树是完整的树

Completed Binary Tree

但是对于CLRS定义而言并非如此,因为 G 使它与其他的不同。对于这种情况,哪两个定义最常用且合适?

2 个答案:

答案 0 :(得分:1)

这取决于用例。

您提到的答案引用的参考文献以此资格结束:

  

有些作者致电perfect binary trees"完成"。

这确实是CLRS中的用法。因此这两个术语都很有用,但用法因参考而异。

这就是为什么数学论文通常从几页术语开始,尽管它有时似乎是多余的。

答案 1 :(得分:0)

使用后一种定义

通常很有用
  

一个二叉树,其中除最深处之外的每个级别都被完全填充。在深度为n的树的高度,所有节点必须尽可能远。

这主要是因为前一个定义的局限性在于你不能拥有一个大小完整的k-ary树