我希望能够遍历一棵树,并将一棵树中的节点与另一棵相同格式的树中的节点进行比较。
例如:有五个类别。
1- 5。都是静态的,并且在两个树之间是相同的。
在1中。所有静态值。所以我只需要比较那里的节点的值。
这是来自一个KVP对象,因此这些节点的数量和它们的单个子节点的数量可能不同。
在% 3中。与%2相同,但有5个子对象
在4-5中与1相同。
我在考虑在树中循环,为每个类别使用不同的for循环,并检查节点是否包含相同的值。
对于2和3,我会做一些相同的事情,但首先检查大小,然后循环检查大小是否相同。
如果我发现了不同之处,我会改变节点的背景色。
这对我来说是最好的方法吗?
发布于 2010-02-26 08:02:25
我不认为你有太多的选择,只能根据树中的数据进行不同的比较算法,因为似乎你的节点在系统上是不同的,这取决于它们在树中的位置。
发布于 2010-02-26 08:27:52
因为我知道深度...所以我这样做:
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
Nexthttps://stackoverflow.com/questions/2338498
复制相似问题