Mik*_*ike 4 c# tree tree-traversal .net-3.5 depth-first-search
如何在c#中使用队列进行深度优先搜索?
以下是我的数据结构:
public class Node
{
public string Name{get;set}
public IEnumerable<Node> Children{get;set;}
}
Run Code Online (Sandbox Code Playgroud)
现在我有一个Node对象的集合,每个对象都带有子节点,它们还有子节点等等.
我想访问每个节点并将其转换为不同的形式.
像下面这样的东西:
public IEnumerable<IContent> BuildContentFrom(IEnumerable<Node> nodes)
{
var queue = new Queue<Node>(nodes);
while (queue.Any())
{
var next = queue.Dequeue();
yield return BuildContentFromSingle(next);
foreach (var child in next.Children)
{
queue.Enqueue(child);
}
}
}
public IContent BuildContentFromSingle(Node node)
{
var content = _contentFactory.Create(node);
return content;
}
Run Code Online (Sandbox Code Playgroud)
由于某些原因,上面并没有给我深度.你能帮忙吗?