@XQF
2018-03-07T15:00:19.000000Z
字数 1450
阅读 980
数据结构与算法
二叉树的递归定义:二叉树或者是一棵空树,或者是一棵由根节点和左右子树组成,。,其中左右子树同样是一棵二叉树
二叉排序树的性质:
重要的是步骤非插入不可,。,。和链表一样,。用个指针。
class TreeNode {int data;TreeNode left;TreeNode right;public TreeNode(int data) {this.data = data;this.left = null;this.right = null;}}class BinaryTree {TreeNode root;public BinaryTree() {root = null;}public void insert(int data) {TreeNode node = new TreeNode(data);if (root == null) {root = node;} else {TreeNode dummy = root;while (true) {if (node.data < dummy.data) {if (dummy.left == null) {dummy.left = node;return;}dummy = dummy.left;} else {if (dummy.right == null) {dummy.right = node;return;}dummy = dummy.right;}}}}public TreeNode create(int[] datas) {for (int i = 0; i < datas.length; i++) {insert(datas[i]);}return root;}public void inOrder(TreeNode root) {if (root != null) {inOrder(root.left);System.out.print(root.data + " ");inOrder(root.right);}}public void preOrder(TreeNode root) {if (root != null) {System.out.print(root.data + " ");preOrder(root.left);preOrder(root.right);}}public void postOrder(TreeNode root) {if (root != null) {postOrder(root.left);postOrder(root.right);System.out.print(root.data + " ");}}}public class Solution {public static void main(String[] args) {BinaryTree tree = new BinaryTree();int[] nums = {1, 3, 4, 5, 6, 4, 3, 2};System.out.print("中序:");TreeNode root = tree.create(nums);tree.inOrder(root);System.out.println();System.out.print("先序:");tree.preOrder(root);System.out.println();System.out.print("后序:");tree.postOrder(root);System.out.println();}}
