数据结构-二叉树

分类

类型

  1. 满二叉树

    1. 除最后一层无任何子节点外,每一层上的所有结点都有两个子结点的二叉树。
    2. 如果一个二叉树的层数为K,且结点总数是(2^k) -1
    3. 肯定是完全二叉树
  2. 完全二叉树

    1. 叶子节点紧凑靠左
    2. 除了叶子节点外,满足满二叉树特性
    3. 可以使用数组表示
  3. 平衡二叉树

    最大最小深度差不超过1

结构

  1. 二分搜索树
  2. 优先队列
  3. 堆(完全二叉树)
  4. 线段树
  5. AVL(平衡二叉树)
  6. 红黑树(黑平衡)

遍历

树的遍历实质上是将二叉树的各个结点转换成为一个线性序列来表示。

设L、D、R分别表示遍历左子树、访问根结点和遍历右子树, 则对一棵二叉树的遍历有三种情况:DLR(称为先根次序遍历),LDR(称为中根次序遍历),LRD (称为后根次序遍历)。

先序遍历

    private void preOrder(Node node) {
        if (null == node) {
            return;
        }
        System.out.println(node.e);
        preOrder(node.left);
        preOrder(node.right);
    }

中序遍历

如果是二分搜索树,此时的结果是有顺序的。

    private void midOrder(Node node) {
        if (null == node) {
            return;
        }
        midOrder(node.left);
        System.out.println(node.e);
        midOrder(node.right);
    }

后序遍历

    private void postOrder(Node node) {
        if (null == node) {
            return;
        }
        postOrder(node.left);
        postOrder(node.right);
        System.out.println(node.e);
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值