gpt4 book ai didi

c# - 合并树节点

转载 作者:太空狗 更新时间:2023-10-30 00:29:16 24 4
gpt4 key购买 nike

有谁知道可以按以下方式合并树节点的算法吗?

treeA
\ child a
\node(abc)
\ child b
\node(xyz)

+

treeB
\ child a
\node(qrs)
\ child b
\node(xyz)
\node(pdq)
\ child c
\node(pdq)

= // do merge

treeMerged
\ child a
\node(abc)
\node(qrs)
\ child b
\node(xyz)
\node(pdq)
\ child c
\node(pdq)

如有任何帮助,我们将不胜感激。

最佳答案

好吧,当我真正花时间考虑之后,发现解决方案比我预期的要简单得多。 (我已经发布了下面代码的关键部分)

   private TreeNode DoMerge(TreeNode source, TreeNode target) {
if (source == null || target == null) return null;

foreach (TreeNode n in source.Nodes) {
// see if there is a match in target
var match = FindNode(n, target.Nodes); // match paths
if (match == null) { // no match was found so add n to the target
target.Nodes.Add(n);
} else {
// a match was found so add the children of match
DoMerge(n, match);
}

}
return target;

}

仍然想知道是否有人有更好的解决方案?

关于c# - 合并树节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/866380/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com