首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Java 创造二叉树并遍历

2012-09-16 
Java 创建二叉树并遍历public class BinaryTree {private Node root/** ** 内部节点类 * @author yhh */p

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);}}


热点排行