二叉树

二叉树是一种特殊的树形结构,它是一种度数为2的树


二叉树基本性质:

  1. 性质1:第i层上至多(2^{i-1})个结点
  2. 性质2:深度为k的结点至多(2^{k-1})个结点
  3. 性质3:叶结点数为k,那么双支结点数为k-1个
  4. 性质4:完全二叉树的深度为(floor(log_2n)+1)
    · 例:(2^{log_2n})=n 如(log_28)=3
  5. 性质5:对于一棵n结点的二叉树,有如下性质:
    · 如果是编号为1的结点,那么他没有父结点
    · 如果是编号为(i(i eq 1))的结点,那么他的父结点为(frac{i}{2})
    · 如果(2 imes i>n),那么此结点为叶子节点,否则左儿子为(i imes 2)
    · 如果(2 imes i+1>n),那么此结点没有右儿子,否则右儿子为(i imes 2+1)

二叉树遍历:

  1. 先序遍历:(根左右)
    1. 先根结点
    2. 然后左子树
    3. 最后右子树
  2. 中序遍历:(左根右)
    1. 先左子树
    2. 然后根结点
    3. 最后右子树
  3. 后序遍历:(左右根)
    1. 先左子树
    2. 然后右子树
    3. 最后根结点
      已知先序+中序可以求后序,后序+中序可以求先序
      但是先序+后序并不可以确定唯一的中序
      例题见往年初赛题

表达式树:
我们最经常使用的是中缀表达式,但还有前缀表达式和后缀表达式
例:
· (a+b)c-d-e/f (中缀表达)
那么前缀表达/波兰式为:
· --
+abcd/ef
后缀表达/逆波兰式为:
· ab+c*d-ef/-

原文地址:https://www.cnblogs.com/Wuzhuoming-sirenboke/p/13779673.html