2017-02-25 77 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多次遍歷該節點的右側。