class TreeTraversal
{
public void main(String[] args) throws IOException
{
System.out.println("Displaying the tree");
theTree.displayTree();
/ **如何打印这些东西?例如Tree.preOrder(Tree.return Root());进入jTextArea 1? * /
StringBuilder order1 = new StringBuilder("Inorder traversal: ");
jTextArea1.append("\n"+order1);
//System.out.println("Inorder traversal");
theTree.inOrder(theTree.returnRoot());
//System.out.println(" ");
StringBuilder order2 = new StringBuilder("Preorder traversal: ");
jTextArea1.append("\n"+order2);
//System.out.println("Preorder traversal");
theTree.preOrder(theTree.returnRoot());
//System.out.println(" ");
StringBuilder order3 = new StringBuilder("Postorder traversal: ");
jTextArea1.append("\n"+order3);
//System.out.println("Postorder traversal");
theTree.postOrder(theTree.returnRoot());
//System.out.println(" ");
}
}
答案 0 :(得分:0)
访客模式适合遍历对象结构。要了解访问者,请参阅http://www.oodesign.com/visitor-pattern.html。如果这对您来说过于复杂,那么java http://en.wikipedia.org/wiki/Visitor_pattern
中的访问者更容易理解您必须创建打印当前访问过的节点的访问者。
要更改遍历顺序,您可以使用所拥有的内容(postOrder,preOrder,inOrder
),也可以使访问者方法返回某些值。值应表示noIteration / inOrder / preOrder / postOrder。
这样做的好处是可以在任何节点停止/更改遍历。