二叉树的创建,先,中,后序遍历二叉树

初学二叉树的感受:

    理解如何创建二叉树便能懂得二叉树的遍历,对递归调用方法以及返回值理解很重要,理解过程中添加的注释欢迎指正,再次体会到理解的快乐哈哈。

代码:

public class ptree {
    public static class TNode { //创建二叉树节点类
        String data;  //数据域
        TNode lchild;
        TNode rchild;
    }

    public TNode creatTree(TNode t) {
        Scanner scanner = new Scanner(System.in);
        String check; //用来接收输入的字符
        System.out.println("请输入节点信息");
        check = scanner.nextLine();
        if (check.equals("#")) {
            t = null;//如果输入#把当前t赋值为null,此处t为初始节点或者t的左右孩子节点,不断递归
        } else {
            t = new TNode();//不为#那么创建结点
            t.data = check;//将当前节点赋值
            System.out.println("请输入" + t.data + "的左孩子节点信息");
            t.lchild = creatTree(t.lchild);//调用该方法,如果不为#继续调用,直到#,返回null,赋值给当前t结点的左孩子
            System.out.println("请输入" + t.data + "的右孩子节点信息");
            t.rchild = creatTree(t.rchild);//同理
        }
        return t;//返回节点
    }

    public void preOrder(TNode t) {//先序遍历
        if (t != null) {
            System.out.print(t.data + " ");
            preOrder(t.lchild);
            preOrder(t.rchild);
        }
    }

    public void inOrder(TNode t) {//中序遍历
        if (t != null) {
            inOrder(t.lchild);
            System.out.println(t.data + "  ");
            inOrder(t.rchild);

        }
    }

    public void lastOrder(TNode t) {//后序遍历,忘了后序遍历的方法命名哈
        if (t != null) {
            lastOrder(t.lchild);
            lastOrder(t.rchild);
            System.out.println(t.data + "   ");

        }
    }
     public static void main(String[] args) {
        ptree P = new ptree();
        TNode t = new TNode();//创建TNode类型变量
        t = P.creatTree(t);//返回头节点,为了遍历二叉树
        P.preOrder(t);//先序遍历二叉树
        P.inOrder(t);
        P.lastOrder(t);
    }
冲。。。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值