[Data Structure & Algrithom] 二叉树

树的基本概念

    • 结点的度 - 该结点子树的个数
    • 树的度 - 该树中结点的最大度数
  • 叶子结点(终端结点) - 终端结点
  • 高度/深度/层数 - 该树的行数

二叉树

  • 满二叉树
  • 完全二叉树
    • 最多最下面两层上结点的度数<2
    • 最下一层上的结点都集中在该层左边的位置上

二叉树性质

  • 第i层上的结点数目最多为2i-1 (i ≥ 1)
  • 深度为k的二叉树最多有2k-1个结点(k ≥ 1)
  • 任意一颗二叉树,若0度结点的个数为n0,2度结点的个数为n2, 则n0 = n2 + 1
  • 具有n个结点的完全二叉树的深度为[log2n]+1

二叉树的遍历

例如,将中缀表达式(a+b)/c-d+e*f表示为二叉树

  • 前序遍历 - 前缀表达式(波兰式)
    • 根节点->左子树->右子树
    • 示例二叉树的前序遍历 +-/+abcd*ef
    • 特点:第一位一定是根节点
  • 中序遍历 - 中缀表达式
    • 左子树->根节点->右子树
    • 找到根节点后,在其左侧的都是左子树下的结点,在其右侧的都是右子树下的结点
  • 后序遍历 - 后缀表达式(逆波兰式)
    • 左子树->右子树->根节点
    • 示例二叉树的后序遍历:ab+c/d-ef*+
    • 特点:最后一位一定是根节点

猜你喜欢

转载自www.cnblogs.com/break-dawnn/p/9692615.html