我正在尝试学习如何在二叉树中打印,并且我了解如何进行预订,但是无法弄清楚如何进行邮寄和订购。我了解他们之间的区别,但不知道如何实现。
int key ;
Node left ;
Node right ;
public Node ( int x ) {
payload = x ;
}
public void printPreorder() {
System.out.println(this.key);
if (left != null) {
this.left.printPreorder();
}
if (right != null) {
this.right.printPreorder();
}
}
public void printPostorder() {
}
public void printInorder() {
System.out.println(this.key);
}
}
答案 0 :(得分:0)
很容易,只需向下移动打印语句即可。一次订购,两次订购。
与Java无关,但与递归有关。在预订时,您需要做的是:从root开始打印,向左走,打印。向左走,直到可以打印所有内容。然后开始右转并在每个步骤打印。通过这种解释,试图弄清楚在我解释的其他两种情况下会发生什么。只是尝试叙述一下我写的内容,您应该就能理解。
答案 1 :(得分:0)
所以我注意到您的inOrder方法存在问题
public void printInorder() {
if (left != null) {
this.left.printInOrder();
}
System.out.println(this.key);
if (right != null) {
this.right.printInOrder();
}
}
对,因为您要按顺序从低到高打印。向左打印,向我打印,然后向右打印。