我目前正准备在c ++中实现一个多路树,但我仍然不确定它们到底是什么。我已经阅读了一些文档,但由于缺少图片或可视化,我仍感到困惑。
假设我想要一个3路树,根据在线网络说明,这意味着每个节点最多可以有3-1 = 2个元素,每个节点最多可以有3个子节点。下面我画了一些树木,我不确定它们是否是3向树木,有人可以验证我是否正确理解了这一点?谢谢!
另外,如果我有一个2路树,这是否意味着我也有一个二叉树? O.o?
答案 0 :(得分:1)
我对多路树的理解是可以从单个节点遍历的子树数。
+---+
| D |
+---+
^
|
|
+---+ +------+ +---+
| A | <-- | Root | --> | B |
+---+ +------+ +---+
|
|
V
+---+
| C |
+---+
上图显示了一个多路树,因为根有多个子节点。
每个节点通常有2个子节点(叶节点除外)表示二叉树 有许多不同种类的二叉树。
另见B-Tree和B * Trees。
编辑1:
另一种观点:
+------------------------+
| Root +
+------------------------+
| | | |
V V V V
+---+ +---+ +---+ +---+
| A | | B | | C | | D |
+---+ +---+ +---+ +---+