Java 试图打印postorder和inorder,但不知道如何操作
我正在努力学习如何在二叉树中打印,我知道如何在预订单中打印,但无法理解如何在后订单中打印。我理解它们之间的区别,但不知道如何实施Java 试图打印postorder和inorder,但不知道如何操作,java,Java,我正在努力学习如何在二叉树中打印,我知道如何在预订单中打印,但无法理解如何在后订单中打印。我理解它们之间的区别,但不知道如何实施 int key ; Node left ; Node right ; public Node ( int x ) { payload = x ; } public void printPreorder() { System.out.println(this.key); if (left != null) { this.le
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);
}
}简单,只需向下移动打印语句即可。一次用于订单,两次用于后期订单
它与Java没有太多关系,但与递归有关。在预排序中,您要做的是:从根开始打印,向左,打印。向左走,直到可以打印所有内容。然后开始右转,并在每一步打印。通过这个解释,试着找出在我解释的另外两个案例中发生了什么。试着像我写的那样叙述,你应该能够理解 简单,只需向下移动打印语句即可。一次用于订单,两次用于后期订单
它与Java没有太多关系,但与递归有关。在预排序中,您要做的是:从根开始打印,向左,打印。向左走,直到可以打印所有内容。然后开始右转,并在每一步打印。通过这个解释,试着找出在我解释的另外两个案例中发生了什么。试着像我写的那样叙述,你应该能够理解 所以我注意到您的顺序方法有一个问题,应该是这样的
public void printInorder() {
if (left != null) {
this.left.printInOrder();
}
System.out.println(this.key);
if (right != null) {
this.right.printInOrder();
}
}
正确,因为使用“顺序”时,您希望从最低到最高打印。打印我的左边,打印我,然后打印右边 所以我注意到您的顺序方法有一个问题,应该是这样的
public void printInorder() {
if (left != null) {
this.left.printInOrder();
}
System.out.println(this.key);
if (right != null) {
this.right.printInOrder();
}
}
正确,因为使用“顺序”时,您希望从最低到最高打印。打印我的左边,打印我,然后打印右边 谢谢你的邀请help@JMm你成功了吗?是的,我成功了,我也明白这一点help@JMm你成功了吗?是的,我成功了,我也理解