2017-02-25 69 views
-2

如何在java中打印给定的二叉树?以下是我的代码:如何在java中打印和显示给定的输入二叉树?

Java代码:

import java.util.Scanner; 

public class binaryexpample1 { 

public static void main(String[] args){ 

     BinaryTree bt = new BinaryTree(); 
     Scanner input = new Scanner(System.in); 

     int x1 = input.nextInt(); 
     BNode root = bt.addRoot(x1); 
     int x2 = input.nextInt(); 
     BNode y1 = bt.insertLeft(root,x2); 
     int x3 = input.nextInt(); 
     BNode y2 = bt.insertRight(root,x3); 
     int x4= input.nextInt(); 
     BNode y3 = bt.insertLeft(y1,x4); 
     int x5 = input.nextInt(); 
     BNode y4 = bt.insertRight(y1,x3); 
     int x6 = input.nextInt(); 
     BNode y5=bt.insertLeft(y2,x6); 
     int x7= input.nextInt(); 
     BNode y6 = bt.insertRight(y2,x7); 
     int x8 = input.nextInt(); 
     system.out,println() 
    } 
} 

请建议实施这一方法。

+2

你可以做的第一件事就是从这里得到这个逗号,并在你的system.out.println()中放一段时间。其次,尝试在括号之间插入一些东西。 – RSon1234

回答

0

使用中序遍历方法,

public void inOrder(BNode root) { 
    if(root == null) { 
     return; 
    } 
    inOrder(root.left); 
    System.out.println(root.value); 
    inOrder(root.right); 
} 

而在你的主这样称呼它的话,

inOrder(bt.root); 

如何中序遍历的工作原理是,它会往下走左边通过调用inOrder的节点。一旦这些递归调用完成,当前节点的值/数据将被打印。然后通过调用inOrder多次遍历该节点的右侧。