BCS*_*BCS 0 c# queue breadth-first-search data-structures
我想使用Queue对树进行广度优先搜索
var q = new Queue<T>();
q.Enqueue(Root);
foreach(T root in q)
{
foreach(T t in root.Children)
q.Enqueue(t);
}
Run Code Online (Sandbox Code Playgroud)
但是我得到了"在实例化枚举器之后修改了集合".例外.
我可以用C#类型吗?
编辑:一点点阅读让我觉得我可能做错了.
有没有办法使用foreach从队列中出队?
这工作但很难看(OMHO)
var q = new Queue<T>();
q.Enqueue(Root);
while(q.Count > 0)
{
T root = q.Dequeue();
foreach(T t in root.Children)
q.Enqueue(t);
}
Run Code Online (Sandbox Code Playgroud)