假设rootNode是一个多层次数据结构。
rootNode.Add(node1);
rootNode.Add(node2);
node1.Add(node3);
node1.Add(node4);
node3.Add(node5);如果使用foreach遍历rootNode,则只会得到node1、node2。如何遍历rootNode中的所有节点?
foreach(var node in rootNode){...}发布于 2011-05-28 04:41:41
您可以使用recursion遍历树。
VisitNode(Node n){
foreach(var cn in n.Children){
VisitNode(cn);
}
//Do what you want to do with your node here
Console.Writeline(n.Value);
}广度优先遍历的Here is an example。
发布于 2011-05-28 04:43:08
进行递归调用:
TraverseNodes(parentNode)
{
for each (Node node in parentNode)
{
if (node.Nodes.Count>0)
TraverseNodes(node);
}
}发布于 2011-05-28 04:43:21
您可以设置一个简单的递归函数
//Pseudo-code
public void traverse(Node n)
{
if(n hasChildren)
{
foreach(Node child in n.children)
{
traverse(child);
}
}
}https://stackoverflow.com/questions/6157451
复制相似问题