java 创建一个二叉树并遍历

import java.util.Scanner;
//定义一个二叉树
//实例化后,形成二叉树的节点
class Tree{
  //定义节点的属性
    private char data;//存储数据
    //存储左右子树地址的属性
    private Tree left,right;
    //控制数组索引
    private int top;//默认为0
    /**
     *  创建一颗二叉树,并返回根节点地址
     * @param des
     * @return
     */
    public Tree create(String des){

        Scanner sc=new Scanner(System.in);
        System.out.println("des:"+des);
              String str=sc.next();
        if(str.charAt(0)<'A')return null;

        //实例化一个tree的节点
        Tree root=new Tree();
         //为当前的节点赋值
         root.data=str.charAt(0);
        //在当前树根的基础上通过递归创建左右子 树
         root.left=create(str.charAt(0)+" 左子树:");
         root.right=create(str.charAt(0)+" 右子树:");
        //返回创建的二叉树的树根
        return root;
    }
    //二叉树的遍历,先序遍历、中序遍历和后序遍历
    public void show(Tree tree){
        //先序遍历
        if(tree!=null){
            System.out.println(tree.data);
            //遍历左子树
            show(tree.left);
            show(tree.right);
        }
    }
}
public class Demo02 {
    public static void main(String[] args) {
          Tree tree=new Tree();
        Tree root=tree.create("根");
          //调用遍历
        tree.show(root);
    }
}

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值