Algorithm 如何从列表构建多路树
我必须通过合并多个列表来构建一个多路树。我正试图找到一个有效的算法来做到这一点Algorithm 如何从列表构建多路树,algorithm,tree,multiway-tree,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 可以构建以下树: 我实现的第一个算法通过创建根节点并逐个向其中添加列表来构建树: 创建根节点 选择第一个列表 如果列表的第一个元素已经是根节点的子元素,请选择它。否则,将该元
- 可以有相同的列表
- 列表元素不是唯一的。这些元素的路径是
- 树以空根元素开始
- A-B-C-D-E
- A-B-C-B
- F-B-C-C
- A-E-F
- A-C-D
- A-B-C-D-E
我找到的大多数构建或合并树的资源都是指二叉树。因此,我想知道在我的例子中是否有更好的算法来构建多路树 快速浏览后,您的算法看起来是正确的,但我会更改术语。我不会说“列表中的第一个元素”,而是使用
标题。不要说列表的下一个元素,你应该考虑传递一个新的列表,去掉标题,然后使用新的标题。这样,您总是在处理列表的标题。不要说直到列表为空
而是思考直到头部为空
。如果你知道输入列表总是固定的,那么你可以使用一个更快速的完美散列,但你在问题中没有这样做。太好了,谢谢你的帮助!快速浏览后,您的算法看起来是正确的,但我会更改术语。我不会说“列表中的第一个元素”,而是使用标题。不要说列表的下一个元素,你应该考虑传递一个新的列表,去掉标题,然后使用新的标题。这样,您总是在处理列表的标题。不要说直到列表为空
而是思考直到头部为空
。如果你知道输入列表总是固定的,那么你可以使用一个更快速的完美散列,但你在问题中没有这样做。太好了,谢谢你的帮助!