java中實現簡單的二叉樹排序演算法
阿新 • • 發佈:2018-12-20
package testProject; public class BinaryTreeDemo { public static void main(String[] args) { BinaryTree bt = new BinaryTree(); bt.add(10); bt.add(1); bt.add(13); bt.add(4); bt.add(5); bt.add(32); bt.add(11); bt.add(7); bt.add(17); bt.print(); } }
package testProject; public class BinaryTree { private Node root; public void add(int data) { if(root==null) { root = new Node(data); }else { root.addNode(data); } } public void print() { root.printNode(); } private class Node{ private int data; private Node left; private Node right; public Node(int data) { this.data = data; } public void addNode(int data) { if(this.data>data) { if(this.left==null) { this.left = new Node(data); }else { this.left.addNode(data); //遞迴呼叫新增方法 } }else{ if(this.right == null) { this.right = new Node(data); }else { this.right.addNode(data); //遞迴呼叫新增方法 } } } public void printNode() { if(this.left!=null) { this.left.printNode(); } System.out.print(data+" "); //由於每一個節點都可看做是根節點,此處可直接輸出自己 if(this.right!=null) { this.right.printNode(); } } } }