用java代码实现二叉树的遍历算法
2016-02-25 20:27
711 查看
二叉树的遍历可以采用递归算法来实现,遍历方式有三种:先序遍历,中序遍历,后序遍历。
下面是一个例子:
public class BinTree{
char data; //根节点数据
BinTree left; //左子树
BinTree right; //右字树
public Bintree(char data) //实例化二叉树类
{
this.data=data;
left=null;
right=null;
}
public static void preOrder(BinTree root) { //先根遍历
if(root!=null) {
System.out.print(root..data+"-");
preOrder(root.left);
preOrder(root.right);
}
}
public static void inOrder(BinTree root) { //中根遍历
if(root!=null){
inOrder(root.left);
System.out.print(root.data+"-----");
inOrder(root.right);
}
}
public static void postOrder(BinTree root){ //后根遍历
if(root!=null) {
postOrder(root.left);
postOrder(root.right);
System.out.print(root.data+"-----");
}
}
public static void main(String[ ] str) {
BinTree root =new BinTree('A'); //创建二叉树
root.left = new BinTree('B');
root.right=new BinTree('C') ;
BinTree b=root.left;
b.left =new BinTree('D');
BinTree c=root.right;
c.left =new BinTree('E');
c.right=new BinTree('F');
System.out.println("先根遍历:");
preOrder(root);
System.out.println ();
System.out.println("中根遍历:");
inOrder(root);
System.out.println();
System.out.println("后根遍历:");
postOrder(root);
}
}
这是个简单的例子,本人还是个菜鸟,正在学java,不足之处,欢迎各位大神批评指正。
下面是一个例子:
public class BinTree{
char data; //根节点数据
BinTree left; //左子树
BinTree right; //右字树
public Bintree(char data) //实例化二叉树类
{
this.data=data;
left=null;
right=null;
}
public static void preOrder(BinTree root) { //先根遍历
if(root!=null) {
System.out.print(root..data+"-");
preOrder(root.left);
preOrder(root.right);
}
}
public static void inOrder(BinTree root) { //中根遍历
if(root!=null){
inOrder(root.left);
System.out.print(root.data+"-----");
inOrder(root.right);
}
}
public static void postOrder(BinTree root){ //后根遍历
if(root!=null) {
postOrder(root.left);
postOrder(root.right);
System.out.print(root.data+"-----");
}
}
public static void main(String[ ] str) {
BinTree root =new BinTree('A'); //创建二叉树
root.left = new BinTree('B');
root.right=new BinTree('C') ;
BinTree b=root.left;
b.left =new BinTree('D');
BinTree c=root.right;
c.left =new BinTree('E');
c.right=new BinTree('F');
System.out.println("先根遍历:");
preOrder(root);
System.out.println ();
System.out.println("中根遍历:");
inOrder(root);
System.out.println();
System.out.println("后根遍历:");
postOrder(root);
}
}
这是个简单的例子,本人还是个菜鸟,正在学java,不足之处,欢迎各位大神批评指正。
相关文章推荐
- java设计模式之命令模式
- 判断其是否为一个回文串,java实现
- spring IOC和AOP的原理
- SpringMVC整合Shiro
- Java----再学习-----transient关键字
- Java语法基础4(思维导图)
- Spring中IOC和AOP的详细解释
- 学习JavaMail
- eclipse sdk4.5安装
- spring中scope作用域
- 如何查看一个java对象的大小
- 详解java定时任务
- Spring-AOP入门
- Java JNI部分printf不打印
- 基于RxJava实现的MVP实例
- java操作xml的一个小例子
- Eclipse常用设置
- 21. Merge Two Sorted Lists
- Java多线程Lock对象之读写锁
- 231. Power of Two