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

标签 c++ tree multiway-tree

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

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

另外,如果我有一个二叉树,那是否意味着我也有一个二叉树?哦? enter image description here

最佳答案

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

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

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

通常每个节点有 2 个子节点(叶节点除外)表示二叉树。
二叉树有很多种。

另请参阅 B 树和 B* 树。

编辑 1:
另一种观点:

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

关于c++ - 这是我应该如何理解多路树是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29551109/

相关文章:

c++ - 为什么我不能在这个类中设置一个值?

c++ - std::functions 是否由 C++11 编译器内联?

algorithm - 从 Vec<String> 构建 UrlTree

algorithm - 从节点串构造多路树

c - 有效地打印树节点及其所有子节点

c++ - OpenGL ES3 FrameBuffer 对象错误

c++ - 在 C++ 项目中链接 ITK 头文件

c++ - 二叉树 - 复制构造函数

java - 制作给定树的后序数据字符串

c - 如何遍历多路树