import java.util.LinkedList;
import java.util.List;
/**
* @author baoyou E-mail:curiousby@163.com
* @version 创建时间:2015年9月7日 上午11:09:36 des:
*/
class BinaryTree { // 定义二叉树的操作类
static int[] arr= {0,1,2,3,4,5,6,7,8,9};
private static class Node {
Node left;
Node right;
int data;
Node(int data){
this.left = null;
this.right = null;
this.data = data;
}
}
public static void preTraverse(Node node){
if (node == null) return;
System.out.print(" "+node.data);
preTraverse(node.left);
preTraverse(node.right);
}
public static void midTraverse(Node node){
if (node == null) return;
midTraverse(node.left);
System.out.print(" "+node.data);
midTraverse(node.right);
}
public static void nextTraverse(Node node){
if (node == null) return;
nextTraverse(node.left);
nextTraverse(node.right);
System.out.print(" "+ node.data);
}
public static Node loading(int[] arr){
List <Node> lnode = new LinkedList<Node>();
for (int i = 0; i < arr.length; i++) {
lnode.add(new Node(arr[i]));
}
for (int i = 0; i < lnode.size() / 2 ; i++) {
lnode.get(i).left = 2*i+1 < lnode.size() ? lnode.get(2*i+1) : null ;
lnode.get(i).right = 2*i+2 < lnode.size() ? lnode.get(2*i+2) : null ;
}
return lnode.get(0);
}
public static void main(String[] args) {
Node root = loading(arr);
System.out.println("\r\n 前序遍历 二叉树");
preTraverse(root);
System.out.println("\r\n 中序遍历 二叉树");
midTraverse(root);
System.out.println("\r\n 后序遍历 二叉树");
nextTraverse(root);
}
}
捐助开发者
在兴趣的驱动下,写一个免费
的东西,有欣喜,也还有汗水,希望你喜欢我的作品,同时也能支持一下。 当然,有钱捧个钱场(右上角的爱心标志,支持支付宝和PayPal捐助),没钱捧个人场,谢谢各位。
谢谢您的赞助,我会做的更好!