Я пытаюсь выполнить обход линейного порядка на двоичном дереве, но проблема с получением правильного вывода. В принципе, я создал очередь и начинаю, заставляя root, а затем до тех пор, пока очередь не будет пустой. Я деактивирую первый элемент и добавлю его дочерние элементы в конец очереди. При отбрасывании возвращается общий элемент(). У меня возникла проблема с преобразованием этого элемента в узел дерева, чтобы я мог поставить своих дочерних элементов в конец очереди на следующем шаге. Вот что я сделал до сих пор:Как выполнить обход порядка на уровне?
public void levelOrderTraversal()
{
NodeQueue<E> queue = new NodeQueue<E>();
BTPosition<E> current = root;
queue.enqueue(current.element());
E temp = null;
while(!queue.isEmpty())
{
temp = queue.dequeue();
System.out.println(temp.toString());
current.setElement(temp);
if (hasLeft(current))
{
queue.enqueue(left(current).element());
}
if (hasRight(current))
{
queue.enqueue(right(current).element());
}
}
}
API для BTPosition и NodeQueue можно найти в http://net3.datastructures.net/doc4/index.html?net/datastructures/
Любые предложения действительно оценили ..