二叉树(一)

何为二叉树?

二叉树是结点的又穷集合,这个集合可以是空集,可以只有一个根结点,还可以是两棵不相交的二叉树,在二叉树中需要区分左子树和右子树。

二叉树特点

  • 1.二叉树中至多关联连个后继结点,关联的后继结点分左右。
  • 2.二叉树是一种递归结构。
  • 3.对于非空二叉树,其结点集合非空,至少包含一个根结点,其子树可以为空。
  • 4.空树:不包含任何结点的二叉树。
  • 5.单点树:只包含一个结点(根结点)的二叉树。
  • 6.兄弟结点:父结点相同的两个结点互为兄弟结点。
  • 7.树叶结点:不包含子结点的结点。
  • 8.分支结点:包含子结点(左右结点或只有一个子结点)的结点。
  • 9.度:一个结点的子结点的个数称为该结点的度数。二叉树中节点的度为0,1,2。
  • 10.层:二叉树根的层数为0,从根结点到任意一个结点的路径长为该结点的层数。
  • 11.高度/深度:树中结点的最大层数为该树的高度。单点树的高度为0。

二叉树的五种形态

image

二叉树的性质

  • 1.非空二叉树中第i层至多有 2^i 个结点。
  • 2.高度为 h 的二叉树至多有 2^(h+1) - 1个结点。

满二叉树

  • 1.如果二叉树中所有分支结点的度数都为2,则该树为满二叉树。
  • 2.满二叉树的叶结点比分支结点多一个

完全二叉树

  • 1.假设二叉树高度为h,如果第0层到第h-1层的结点都满,最下一层的结点不满,而所有结点在最左侧连续排列,空位在右边,则该树为完全二叉树。 image

常用

二叉树可作为 DFS和BFS两种搜索算法的基础数据结构,因为二叉树是一种递归的结构,在搜索算法中假设某种状态可选可不选时可抽象为二叉树,但是这种递归操作必须结合 回溯和 剪枝技巧保证算法的时间复杂度。 树形结构在计算机领域应用广泛,比如 linux 文件系统,MySQL数据库索引等。

预告

掌握二叉树可从以下几个方面入手:

  • 1.二叉树的特性
  • 2.二叉树实现
  • 3.二叉树搜索
  • 4.二叉树算法 leetcode

转载于:https://my.oschina.net/u/3757468/blog/1837096

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值