這是我的廣度優先搜索代碼。 我想逐級打印。一條線,一個水平。Java廣而告之搜索不錯打印
public static void printTreeBreadthFirst(Tree t)
{
Node root = t.getRoot();
Queue<Node> queue = new LinkedList<Node>() ;
if (root == null)
return;
queue.clear();
queue.add(root);
while(!queue.isEmpty()){
Node<?> node = queue.remove();
System.out.println(node.getData() + " ");
if(node.getChildren().isEmpty())
continue;
else
queue.addAll(node.getChildren());
}
}
但是,這不是一個很好的印刷,因爲它打印在同一行的一切。 如何實現這個漂亮的打印?
編輯:例如一個很好的打印 INPUT的:(根(child1(兒童1.1,兒童1.2)(子2(子2.1))(child3)) NICE輸出:
root (level 1)
child1 - child2 - child3 (level 2)
child1.1 - child1.2 - child2.1 (level 3)
你可以提供一個例子說明如何打印'(root(child1(child1.1,child1.2)(child2(child2.1))(child3))',以使它看起來不錯?注意,深度優先的搜索對於漂亮的打印樹更爲典型... – tucuxi
「漂亮的打印」究竟意味着什麼?它會通過搜索節點的深度縮進輸入嗎? – radoh
我用例子更新了問題確定我的意思。 – user840718