zoukankan      html  css  js  c++  java
  • 07_1.二叉数

    - 在非空二叉树第i层中至多有2^i个结点(i>=0)

    第0层至多有一个根结点

    - 高度为h的二叉树至多有(2^(h+1))-1个结点(h>=0)

    高度为0只有一个根结点

    - 对于任何非空二叉树T,如果其叶结点的个数n0,度数为2的结点个数为n2,那么n0=n2+1

    叶结点(没有子结点的结点),度数为2(有左右2个子树)

    - 满二叉树的叶结点比分支结点(度数不为0的结点)多一个

    扩充二叉树:

    扩充二叉树对二叉树T,加入足够多的新叶结点,使T的原结点都变成度数为2的分支结点,得到的二叉树
    称为T的扩充二叉树。扩充二叉树中新增的结点称为其外部结点,原树T的结点(注意包括根结点)称为其内部结点。空树的扩充二叉树
    规定为空树
    扩充二叉树的外部结点的个数比内部结点的个数多1
    n = n - 1

    - 扩充二叉树的外部路径长度E是从树根到树中各外部结点的路径长度之和,
    内部路径长度I是从树根到树中各内部结点的路径长度之和。
    如果该树有n个内部结点,那么E=I+2*n

    完全二叉树:

    对于一棵高度为h的二叉树,如果其第0层至第h-1层的结点都满(也就是说,对所有0<=i<=h-1,第i层有
    2^i个结点),如果最下一层的结点不满,则所有结点在最左边连续排列,空位都在右边,这样的二叉树就是一
    棵完全二叉树。
    完全二叉树,除了最下两层外,其余层都是度数为2的分支结点,而且除了最右的分支结点度数可能为1外,其余分支结点的度数均为2

     - n个结点的完全二叉树高度h=|_log2n_| ,即为不大于log2n的最大整数

    - 如果n个结点的完全二叉树的结点按层次并按从左到右的顺序从0开始编号,对任一结点i(0<=i<=n-1)都有:

      * 序号为0的结点是根

      * 对于i>0,其父结点的编号是(i-1)/2

          * 若2*i+1<n,其左子结点序号为2*i+1,否则它无左子结点

      * 若2*i+2<n,其右子结点序号为2*i+2,否则它无右子结点

    二叉树的遍历:

    深度优先遍历:

    • 先根序遍历:按照根,左子树,右子树顺序
    • 中根序遍历(对称序):按照左子树,根,右子树顺序
    • 后根序遍历:按照左子树,右子树,根顺序

     由于二叉树的子树也是二叉树,将一种具体的遍历顺序继续运用到子树的遍历中,在遍历过程中遇到子树为空的情况,就立即结束处理并转去继续做下一步工作,如先根序列遍历中遇到左子树为空,就转去遍历相应的右子树

    先根序遍历(先根序列):ABDHEICFJKG

    中根序遍历(中根序列):  DHBEIAJFKCG

    后根序遍历(后根序列): HDIEBJKFGCA

    如果知道了一棵二叉树的对称序列,又知道另一遍历序列,就可以唯一确定这个二叉树

    宽度优先遍历:

    就是按层次顺序遍历

    ABCDEFGHIJK

  • 相关阅读:
    poj 1321 棋盘问题 (dfs)
    poj 3274 Gold Balanced Lineup(哈希 )
    poj 2513 Colored Sticks( 字典树哈希+ 欧拉回路 + 并查集)
    zoj 3351 Bloodsucker(概率 dp)
    poj 1840 Eqs (hash)
    poj 2418 Hardwood Species (map)
    poj 2151 Check the difficulty of problems(概率dp)
    poj 2442 Sequence(优先队列)
    poj 1442 Black Box(堆 优先队列)
    两个STL网址 总结的很好 && c++堆的网址
  • 原文地址:https://www.cnblogs.com/fly-book/p/11743479.html
Copyright © 2011-2022 走看看