二叉树

如果一棵数中的每个结点有0、1或者2个孩子节点,那么这棵树就称为二叉树,下面是Java中二叉树的定义,包括三种递归遍历方法,非递归遍历会在后一篇文章中介绍。

import stack.LLStack;

public class BinaryTreeNode<T> {
    /**
     * 本类中使用的栈为自定义栈,也可以使用java中封装的栈
     */
    private T data;
    private BinaryTreeNode<T> left;  // 左子树
    private BinaryTreeNode<T> right; // 右子树

    public BinaryTreeNode(){}; // 空参构造
    public BinaryTreeNode(T data) { // 有参构造
        super();
        this.data = data;
    }

    public T getData() {
        return data;
    }
    public void setData(T data) {
        this.data = data;
    }
    public BinaryTreeNode<T> getLeft() {
        return left;
    }
    public void setLeft(BinaryTreeNode<T> left) {
        this.left = left;
    }
    public BinaryTreeNode<T> getRight() {
        return right;
    }
    public void setRight(BinaryTreeNode<T> right) {
        this.right = right;
    }

    /***********************基本操作**************************/

    public void preOrder(BinaryTreeNode<T> root){ // 前序遍历递归算法
        if(root != null){
            System.out.println(root.getData());
            preOrder(root.getLeft());
            preOrder(root.getRight());
        }
    }

    public void inOrder(BinaryTreeNode<T> root){ // 中序遍历递归算法
        if(root != null){
            inOrder(root.getLeft());
            System.out.println(root.getData());
            inOrder(root.getRight());
        }
    }

    public void postOrder(BinaryTreeNode<T> root){ // 中后序遍历递归算法
        if(root != null){
            postOrder(root.getLeft());
            postOrder(root.getRight());
            System.out.println(root.getData());
        }
    }

完整代码可访问我的GitHub:https://github.com/StriverLi/Data-Structures-and-Algorithms-in-Java/blob/master/src/tree/BinaryTreeNode.java

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值