gpt4 book ai didi

c# - 如何在C#中将一棵树插入另一棵树

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:56:28 25 4
gpt4 key购买 nike

我有两棵这样的树: enter image description here

我想将第二棵树插入第一棵树中的一个节点,该节点与其根节点同名,并将该节点的子节点附加到第二棵树的最左边的子节点。

我试过:

    PTree attachPoint = chain.Find(x => x.Val == RTree.Val);


if (attachPoint != null)
{
foreach (var c in attachPoint.Childs)
{
RTree.Left.Childs.Add(c);
}
attachPoint = RTree;
}
else
{
RTree.Left.Childs.Add(root);
root = RTree;
}

这里,RTree 是第二棵树,root 指向第一棵树的根,chain 持有从根“A”开始的分支到“D”。但似乎没有构建所需的树。我做对了吗?

最佳答案

如果您已经包含了 PTree 类的基本部分,那么提供帮助会更容易。以下是我可以根据发布的代码向您提出的建议:

PTree attachPoint = chain.Find(x => x.Val == RTree.Val);

if (attachPoint != null)
{
foreach (var c in attachPoint.Childs)
{
RTree.Left.Childs.Add(c);
}
// Here you either have to find the attachPoint parent and
// replace attachPoint with RTree in parent.Childs,
// or make attachPoint.Childs to be RTree.Childs as below
attachPoint.Childs.Clear();
foreach (var c in RTree.Childs)
{
attachPoint.Childs.Add(c);
}
}
else
{
RTree.Left.Childs.Add(root);
root = RTree;
}

关于c# - 如何在C#中将一棵树插入另一棵树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35296248/

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