Как бы вы распечатали данные в двоичном дереве, уровень за уровнем, начиная сверху?
Это вопрос интервью
Я думаю о решении. Использует очередь.
public Void BFS()
{
Queue q = new Queue();
q.Enqueue(root);
Console.WriteLine(root.Value);
while (q.count > 0)
{
Node n = q.DeQueue();
if (n.left !=null)
{
Console.Writeln(n.left);
q.EnQueue(n.left);
}
if (n.right !=null)
{
Console.Writeln(n.right);
q.EnQueue(n.right);
}
}
}
Может ли кто-нибудь придумать лучшее решение, чем это, которое не использует очередь?