实现二叉树 并先序遍历之。
package 二叉树的实现; public class BinaryTree<T> { class Node { int value; // 该节点存储的值。 Node leftChild; // 指向左子节点的引用。 Node rightChild; // 指向右子节点的引用。 Node(int value) { this.value = value; leftChild = null; rightChild = null; } } private Node root; // 根节点。 BinaryTree() { root = null; } BinaryTree(int[] arr) { for (int i : arr) { insert(i); } } private void insert(int value) { root = insert(root, value); } private Node insert(Node node, int value) { if (node == null) { node = new Node(value); } else { if (value <= node.value) { node.leftChild = insert(node.leftChild, value); } else { node.rightChild = insert(node.rightChild, value); } } return node; } private void visit(Node node) { if (node == null) { return; } int value = node.value; System.out.println(value); } private void preOrderTravels(Node node) { if (node == null) { return; } else { visit(node); preOrderTravels(node.leftChild); preOrderTravels(node.rightChild); } } public void preOrderTravels() { preOrderTravels(root); } }
package 二叉树的实现; import java.util.*; public class Treetest { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int[] arr = new int[10]; int m,n; for(int i=0; i<10; i++){ arr[i] = scan.nextInt(); } BinaryTree<Integer> tree = new BinaryTree<Integer>(arr); tree.preOrderTravels(); } }