我目前正在用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 |
+---+ +---+ +---+ +---+