Java創建二叉樹并遍歷的代碼
Java創建二叉樹并遍歷的代碼
public class BinaryTree {private Node root; /** * * 內部節點類 * @author yhh */ private class Node{ private Node left; private Node right; private int data; public Node(int data){ this.left = null; this.right = null; this.data = data; } } public BinaryTree(){ root = null; } /** * 遞歸創建二叉樹 * @param node * @param data */ public void buildTree(Node node,int data){ if(root == null){ root = new Node(data); }else{ if(data < node.data){ if(node.left == null){ node.left = new Node(data); }else{ buildTree(node.left,data); } }else{ if(node.right == null){ node.right = new Node(data); }else{ buildTree(node.right,data); } } } } /** * 前序遍歷 * @param node */ public void preOrder(Node node){ if(node != null){ System.out.println(node.data); preOrder(node.left); preOrder(node.right); } } /** * 中序遍歷 * @param node */ public void inOrder(Node node){ if(node != null){ inOrder(node.left); System.out.println(node.data); inOrder(node.right); } } /** * 后序遍歷 * @param node */ public void postOrder(Node node){ if(node != null){ postOrder(node.left); postOrder(node.right); System.out.println(node.data); } } public static void main(String[] args) { int[] a = {2,4,12,45,21,6,111}; BinaryTree bTree = new BinaryTree(); for (int i = 0; i < a.length; i++) { bTree.buildTree(bTree.root, a[i]); } bTree.preOrder(bTree.root); bTree.inOrder(bTree.root); bTree.postOrder(bTree.root); }
}</pre>
本文由用戶 pc688 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!