除二叉树之外的不同种类的树ADT之间的差异

时间:2014-02-01 17:36:31

标签: algorithm data-structures tree

除了二元和二元搜索树之外;我不确定以下基于树的数据结构之间的根本区别究竟是什么。有些树只是另一棵树的子集吗?一些树是完全相同的,但遵循不同的命名法?

  1. B树
  2. B + Tree
  3. k-ary tree
  4. k-d tree
  5. n-ary tree
  6. 四叉树
  7. 2-3树
  8. 2-3-4树
  9. 米树
  10. m-ary tree
  11. 唯一具有非常清晰定义且没有重叠的树是二进制,二叉搜索树,甚至可能是尝试。

    除此之外,上面列出的树的谷歌搜索结果导致了许多不同的定义,一些重叠,一些非常不同。例如,一个人对b树的实现与另一个人的实现是如此不同;它确实要求改变定义。它已经到了所有这些定义刚开始混淆了我的地步。是否有一本书可以被认为是标准圣经的所有上述树数据结构?一些澄清将不胜感激。

1 个答案:

答案 0 :(得分:0)

大多数,尽管可能不是所有这些都在Aho,Hopcroft和Ullman的数据结构和算法

一个提示是,其名称中包含-ary的任何内容都是具有已定义分支度的树 - 因此二叉树每个节点有两个(可能为null)子节点; n -ary树每个节点有n个(可能为null)子节点。

列表中的大多数其他人在他们的定义和算法中都有某种平衡,以将他们的最坏情况行为保持为O(n log n),而没有平衡他们通常具有O的最坏情况行为(n ^ 2)

四叉树将是例外,因为它是一种划分空间的方法,用于图形和图像处理算法。