我想使用队列对树进行广度优先搜索
var q = new Queue<T>();
q.Enqueue(Root);
foreach(T root in q)
{
foreach(T t in root.Children)
q.Enqueue(t);
}
但是我得到一个“枚举器被实例化后集合被修改”。例外。
有没有我可以使用的 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);
}