建树、前序、中序、后序遍历Java版

来源:互联网 发布:破解积分软件 编辑:程序博客网 时间:2024/05/21 04:43

郁闷,今天笔试竟然连前序中序后序遍历互求都没做出来,一怒之下,全程写一遍吧!

public class Traverse {class Node{public Node() {// TODO Auto-generated constructor stubint data = 0;left = null;right = null;}int data;Node left;Node right;}Node root;Traverse(){root = null;generateTree();}void generateTree(){int[] arr = {1,4,2,5,6,3,4,6,4};for(int i = 0; i < arr.length;i++){buildTree(root, arr[i]);}}void buildTree(Node node,int data){if(root==null){root = new Node();root.data = data;}else {if(data<node.data){if(node.left==null){Node newNode = new Node();newNode.data = data;node.left = newNode;}else {buildTree(node.left, data);}}else {if(node.right==null){Node newNode = new Node();newNode.data = data;node.right = newNode;}else {buildTree(node.right, data);}}}}void Mtranverse(Node node){if(node!=null) {Mtranverse(node.left);System.out.print(node.data);Mtranverse(node.right);}}void Rtranverse(Node node){if(node!=null) {Rtranverse(node.left);Rtranverse(node.right);System.out.print(node.data);}}void Ltranverse(Node node){if(node!=null) {System.out.print(node.data);Ltranverse(node.left);Ltranverse(node.right);}}void printAll(){Ltranverse(root);System.out.println();Mtranverse(root);System.out.println();Rtranverse(root);}public static void main(String[] args) {// TODO Auto-generated method stubTraverse traverse = new Traverse();traverse.printAll();}}


0 0
原创粉丝点击