Я хотел бы отображать древовидную структуру по уровням. Мой текущий код выполняет BFS или обход порядка уровней, но я не могу получить вывод для отображения древовидной структуры, такой как дерево. См. текущий вывод и ожидаемый вывод.
Моя идея заключалась в том, чтобы использовать какой-то счетчик для перебора элементов с одного уровня в очереди.
Как я могу это сделать.
Исходный код без этой функции можно найти по ссылке ниже, если кому-то нужна полная реализация, иначе просто посмотрите на функцию displayBFS ниже.
Обход уровня общего дерева (n- дерево) в java
Спасибо!
void displayBFS(NaryTreeNode n)
{
Queue<NaryTreeNode> q = new LinkedList<NaryTreeNode>();
System.out.println(n.data);
while(n!=null)
{
for(NaryTreeNode x:n.nary_list)
{
q.add(x);
System.out.print(x.data + " ");
}
n=q.poll();
System.out.println();
}
}
Current Tree Structure for reference:
root(100)
/ | \
90 50 70
/ \
20 30 200 300
Current Output:
100
90 50 70
20 30
200 300
Expected Output
100
90 50 70
20 30 200 300
Кроме того, ранее я опубликовал логическую проблему с той же функцией, так как на нее был дан ответ, и текущий вопрос относится к другой проблеме, я разместил новый вопрос, подходит ли этот подход или мне следует внести изменения в предыдущий вопрос, а не открывать новенький?