qq_52393609 2022-01-02 23:32 采纳率: 66.7%

# 请问一下各位我的这个二叉树遍历方法为啥输出的会是乱码

###### 问题相关代码，请勿粘贴截图

package 实验三;

public class BinaryTreeTest {

``````public static void main(String[] args) {
BiTree bitree=new BiTree();
Node root=new Node("A");
Node node2=new Node("B");
Node node3=new Node("C");
Node node4=new Node("D");
Node node5=new Node("E");
Node node6=new Node("F");
Node node7=new Node("G");
Node node8=new Node("H");
Node node9=new Node("I");
Node node10=new Node("J");
Node node11=new Node("k");
bitree.setRoot(root);

root.setLeft(node2);
root.setRight(node3);
node2.setLeft(node4);
node2.setRight(node5);
node4.setRight(node8);

System.out.println("前序遍历结果为");
bitree.preOrder();
System.out.println("中序遍历结果为");
bitree.infixOrder();
System.out.println("后序遍历结果为");
bitree.postOrder();
}
``````

}
class BiTree{
private Node root;

``````public Node getRoot() {
return root;
}

public void setRoot(Node root) {
this.root = root;
}

public void preOrder() {
if(this.root!=null) {
this.root.preOrder();
}else {
System.out.println("二叉树为空，无法进行遍历");
}
}

public void infixOrder() {
if(this.root!=null) {
this.root.infixOrder();
}else {
System.out.println("二叉树为空，无法进行遍历");
}
}

public void postOrder() {
if(this.root!=null) {
this.root.postOrder();
}else {
System.out.println("二叉树为空，无法进行遍历");
}
}
``````

}

class Node{
private String ABC;
private Node left;
private Node right;

``````public Node(String aBC) {
super();
ABC = aBC;
}

public String getABC() {
return ABC;
}

public void setABC(String aBC) {
ABC = aBC;
}

public Node getLeft() {
return left;
}

public void setLeft(Node left) {
this.left = left;
}

public Node getRight() {
return right;
}

public void setRight(Node right) {
this.right = right;
}

public void preOrder() {
System.out.println(this);
if(this.left!=null) {
this.left.preOrder();
}
if(this.right!=null) {
this.right.preOrder();
}
}

public void infixOrder() {
if(this.left!=null) {
this.left.infixOrder();
}
System.out.println(this);
if(this.right!=null) {
this.right.infixOrder();
}
}

public void postOrder() {
if(this.left!=null) {
this.left.postOrder();
}
if(this.right!=null) {
this.right.postOrder();
}
System.out.println(this);
}
``````

}

• 写回答

#### 1条回答默认 最新

• 关注

Node 类重写toString方法即可。

本回答被题主选为最佳回答 , 对您是否有帮助呢?
评论

• 系统已结题 1月10日
• 已采纳回答 1月2日
• 创建了问题 1月2日

#### 悬赏问题

• ¥25 activeMq在同服务器centos8下消费很慢
• ¥15 c++多文件编译报错：undefined reference to
• ¥20 为什么zynq CAN IP 无法进入config配置模式，XCan_SelfTest函数失效？
• ¥15 Pycharm中程序直接运行可以但进入调试报错
• ¥15 MATLAB动图问题
• ¥15 有段代码不知道怎么理解，const isToken = (config.headers || {}).isToken === false
• ¥15 我的显卡支持CUDA最高版本是12.3，这个版本也支持VS 2022 17.0这种情况下如果我想下载CUDA11.8，需要下载旧版本的VS2022吗
• ¥15 pointnet2包安装
• ¥20 射频功率问题，解答者有酬谢！
• ¥80 构建降雨和积水的预测模型