构造排序二叉树并输出前序遍历、中序遍历、后序遍历

来源:互联网 发布:linux进入目录的命令 编辑:程序博客网 时间:2024/05/14 16:41
package DataStructure;public class BinTreeInt {private Node root;private class Node {private Node leftChild;private Node rightChild;private int data;public Node(int data) {this.leftChild = null;this.rightChild = null;this.data = data;}}public BinTreeInt() {root = null;}public void buildTree(Node node, int data) {if (root == null) {root = new Node(data);} else {if (data < node.data) {if (node.leftChild == null) {node.leftChild = new Node(data);} else {buildTree(node.leftChild, data);}} else {if (node.rightChild == null) {node.rightChild = new Node(data);} else {buildTree(node.rightChild, data);}}}}// buildTreepublic void preOrder(Node node) {if (node != null) {System.out.print(node.data + ",");preOrder(node.leftChild);preOrder(node.rightChild);}}// preOrderpublic void midOrder(Node node) {if (node != null) {midOrder(node.leftChild);System.out.print(node.data + ",");midOrder(node.rightChild);}}// midOrderpublic void postOrder(Node node) {if (node != null) {postOrder(node.leftChild);postOrder(node.rightChild);System.out.print(node.data + ",");}}// postOrderpublic static void main(String[] args) {int[] a = new int[] { 2, 4, 12, 45, 21, 6, 111 };BinTreeInt binTree = new BinTreeInt();for (int i = 0; i < a.length; i++) {binTree.buildTree(binTree.root, a[i]);}System.out.print("前序遍历");binTree.preOrder(binTree.root);System.out.println();System.out.print("中序遍历");binTree.midOrder(binTree.root);System.out.println();System.out.print("后序遍历");binTree.postOrder(binTree.root);}}// 前序遍历2,4,12,6,45,21,111,// 中序遍历2,4,6,12,21,45,111,// 后序遍历6,21,111,45,12,4,2,

0 0
原创粉丝点击