Algorithm 二叉树以外的不同类型树ADT之间的差异

Algorithm 二叉树以外的不同类型树ADT之间的差异,algorithm,data-structures,tree,Algorithm,Data Structures,Tree,除了二叉树和二叉树之外;我不确定以下基于树的数据结构之间到底有什么根本区别。有些树只是另一棵树的子集吗?有些树是完全相同的,但名称不同吗 B-树 B+树 k元树 k-d树 n元树 四叉树 2-3棵树 2-3-4树 m-树 三叉树 唯一的树有一个非常明确的定义,没有重叠是二进制,二进制搜索树,甚至可能尝试 除此之外,谷歌对上面列出的树的搜索结果导致了如此多的不同定义,有些重叠,有些彼此非常不同。例如,一个人对b-树的实现与另一个人是如此不同;它实际上要求改变定义。这已经到了一个地步,所有这些定义都

除了二叉树和二叉树之外;我不确定以下基于树的数据结构之间到底有什么根本区别。有些树只是另一棵树的子集吗?有些树是完全相同的,但名称不同吗

  • B-树
  • B+树
  • k元树
  • k-d树
  • n元树
  • 四叉树
  • 2-3棵树
  • 2-3-4树
  • m-树
  • 三叉树
  • 唯一的树有一个非常明确的定义,没有重叠是二进制,二进制搜索树,甚至可能尝试


    除此之外,谷歌对上面列出的树的搜索结果导致了如此多的不同定义,有些重叠,有些彼此非常不同。例如,一个人对b-树的实现与另一个人是如此不同;它实际上要求改变定义。这已经到了一个地步,所有这些定义都开始把我搞糊涂了。是否有一本书可以将上述所有树数据结构视为标准圣经?非常感谢您的澄清。

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

    一个提示是,任何名称中带有-ary的都是具有定义的分支度的树,因此二叉树每个节点有两个(可能为空)子节点;n元树每个节点有n个子节点(可能为空)

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


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

    其中许多根本不是ADT。实际上,二进制搜索树不是ADT,而是一种具体的数据结构。他们实现的ADT要么是动态集合,要么是关联映射。最接近“标准”定义的是创建它的人(可能是在论文中)。但我的猜测是,您没有完全理解这些定义(因此认为它们之间的差异比实际情况更大),您将实现细节误认为是定义细节,或者您正在阅读那些不知道自己在说什么或沟通不好的人编写的定义,因为我对其中的大多数都很熟悉,而且大多数都有相当直接的定义。哦,还有。