这是我应该如何理解多路树是什么?

时间:2015-04-09 23:59:56

标签: c++ tree multiway-tree

我目前正准备在c ++中实现一个多路树,但我仍然不确定它们到底是什么。我已经阅读了一些文档,但由于缺少图片或可视化,我仍感到困惑。

假设我想要一个3路树,根据在线网络说明,这意味着每个节点最多可以有3-1 = 2个元素,每个节点最多可以有3个子节点。下面我画了一些树木,我不确定它们是否是3向树木,有人可以验证我是否正确理解了这一点?谢谢!

另外,如果我有一个2路树,这是否意味着我也有一个二叉树? O.o? enter image description here

1 个答案:

答案 0 :(得分:1)

我对多路树的理解是可以从单个节点遍历的子树数。

           +---+  
           | D |
           +---+  
             ^  
             |  
             |  
+---+     +------+     +---+  
| A | <-- | Root | --> | B |  
+---+     +------+     +---+
             |  
             |  
             V
           +---+  
           | C |  
           +---+  

上图显示了一个多路树,因为根有多个子节点。

每个节点通常有2个子节点(叶节点除外)表示二叉树 有许多不同种类的二叉树。

另见B-Tree和B * Trees。

编辑1:
另一种观点:

 +------------------------+  
 |          Root          +
 +------------------------+  
  |       |       |       |  
  V       V       V       V  
+---+   +---+   +---+   +---+  
| A |   | B |   | C |   | D |  
+---+   +---+   +---+   +---+