首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >比较树视图中的树

比较树视图中的树
EN

Stack Overflow用户
提问于 2010-02-26 07:45:36
回答 2查看 1.7K关注 0票数 0

我希望能够遍历一棵树,并将一棵树中的节点与另一棵相同格式的树中的节点进行比较。

例如:有五个类别。

1- 5。都是静态的,并且在两个树之间是相同的。

在1中。所有静态值。所以我只需要比较那里的节点的值。

这是来自一个KVP对象,因此这些节点的数量和它们的单个子节点的数量可能不同。

在% 3中。与%2相同,但有5个子对象

在4-5中与1相同。

我在考虑在树中循环,为每个类别使用不同的for循环,并检查节点是否包含相同的值。

对于2和3,我会做一些相同的事情,但首先检查大小,然后循环检查大小是否相同。

如果我发现了不同之处,我会改变节点的背景色。

这对我来说是最好的方法吗?

EN

回答 2

Stack Overflow用户

发布于 2010-02-26 08:02:25

我不认为你有太多的选择,只能根据树中的数据进行不同的比较算法,因为似乎你的节点在系统上是不同的,这取决于它们在树中的位置。

票数 1
EN

Stack Overflow用户

发布于 2010-02-26 08:27:52

因为我知道深度...所以我这样做:

代码语言:javascript
复制
 For h As Integer = 0 To tree1.Nodes(0).Nodes.Count - 1
        For i As Integer = 0 To tree1.Nodes(0).Nodes(h).Nodes.Count - 1
            For j As Integer = 0 To tree1.Nodes(0).Nodes(h).Nodes(i).Nodes.Count - 1

                If tree1.Nodes(0).Nodes(h).Nodes(i).Text <> _
                        tree2.Nodes(0).Nodes(h).Nodes(i).Text Then
                    tree2.Nodes(0).Nodes(h).Nodes(i).BackColor = Color.Red
                    tree2.Nodes(0).Nodes(h).Nodes(i).Nodes(j).Expand()
                    tree2.Nodes(0).Nodes(h).Nodes(i).Expand()
                    tree2.Nodes(0).Nodes(h).Expand()
                    tree2.Nodes(0).Expand()

                    tree1.Nodes(0).Nodes(h).Nodes(i).BackColor = Color.Red
                    tree1.Nodes(0).Nodes(h).Nodes(i).Nodes(j).Expand()
                    tree1.Nodes(0).Nodes(h).Nodes(i).Expand()
                    tree1.Nodes(0).Nodes(h).Expand()
                    tree1.Nodes(0).Expand()


                ElseIf tree1.Nodes(0).Nodes(h).Nodes(i).Nodes(j).Text <> _
                    tree2.Nodes(0).Nodes(h).Nodes(i).Nodes(j).Text Then
                    tree2.Nodes(0).Nodes(h).Nodes(i).Nodes(j).BackColor = Color.Red
                    tree2.Nodes(0).Nodes(h).Nodes(i).BackColor = Color.Red
                    tree2.Nodes(0).Nodes(h).Nodes(i).Nodes(j).Expand()
                    tree2.Nodes(0).Nodes(h).Nodes(i).Expand()
                    tree2.Nodes(0).Nodes(h).Expand()
                    tree2.Nodes(0).Expand()

                    tree1.Nodes(0).Nodes(h).Nodes(i).Nodes(j).BackColor = Color.Red
                    tree1.Nodes(0).Nodes(h).Nodes(i).BackColor = Color.Red
                    tree1.Nodes(0).Nodes(h).Nodes(i).Nodes(j).Expand()
                    tree1.Nodes(0).Nodes(h).Nodes(i).Expand()
                    tree1.Nodes(0).Nodes(h).Expand()
                    tree1.Nodes(0).Expand()
                End If
            Next

        Next
    Next
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2338498

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档