如何从列表构建多路树

时间:2017-04-27 17:04:04

标签: algorithm tree multiway-tree

我必须通过将多个列表合并在一起来构建多路树。我试图找到一个有效的算法来做到这一点。

  • 可以有相同的列表
  • 列表元素不是唯一的。这些元素的路径是
  • 树以空根元素
  • 开头

列表包含不唯一的元素。每个元素的路径是一个键,

例如,使用列表:

  • A-B-C-d-E
  • A-B-C-B
  • F-B-C-C
  • A-E-F
  • A-C-d
  • A-B-C-d-E

可以构建以下树:

enter image description here

我实现的第一个算法通过创建根节点并逐个添加列表来构建树:

  1. 创建根节点
  2. 选择第一个列表
  3. 如果列表的第一个元素已经是根节点的子元素,请选择它。否则,将该元素作为子元素插入。
  4. 如果列表的下一个元素已经是之前选择或插入的子元素,请选择它。否则,将该元素作为子元素插入。
  5. 重复步骤4直到列表为空
  6. 选择下一个阵列并转到步骤3.如果没有其他列表,请停止。
  7. 我发现构建或合并树的大部分资源都是指二叉树。因此,我想知道在我的案例中是否有更好的算法来构建多路树?

0 个答案:

没有答案