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

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

另外,如果我有一个2路树,那是否也意味着我也有一个二叉树?哦?

最佳答案

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

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


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

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

另请参见B树和B *树。

编辑1:
另一种观点:

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

09-28 13:35