zoukankan      html  css  js  c++  java
  • 数据结构之——树

    一、树

    1、深度为n的满m叉数的第k层有 m^(k-1) 个结点(1≤k≤h)

      解析:树的根节点为1,满M叉树,第n层节点树肯定是前一层节点的m倍

        第1层: 1           m^0  

        第2层: 1*m       m^1

        第3层: 1*m*m        m^2

         . . .           . . .

        第k层: 1*m^(k-1)      m^(k-1)

    2、 二叉树有一个性质:n0=n2+1   (n0是指度为0的节点,n2是指度为2的节点)

      若二叉树有67个结点,那么,要么度为0(m),要么度为2(n),则有 m+n = 67,  m=n+1,2n+1 = 67, 则有 n=33 ,m=34。所以度为2的节点有33个,度为0的节点有34个。

    3、使用一个长度最大为150的队列,对满二叉树进行广度优先遍历时,能容纳的二叉树最大深度为  2^(n-1) 

    4、一棵左右子树不空的二叉树,前序和后序先说好空指针域都是1,中序是2。

    5、求图的最小生成树算法:

      ①Prim算法:适合稠密图,贪心算法的运用,时间复杂度O(n+e),邻接表存储;O(n^2)

      ②Kruskal算法:适合稠密图,贪心算法的运用,时间复杂度O(eloge),e为边数。

    6、平衡因子=左子树高度-右子树高度,有四种情况可能导致二叉查找树不平衡,分别为:

      ①LL:插入一个新节点到根节点的左子树(Left)的左子树(Left),导致根节点的平衡因子由1变为2。

      ②RR:插入一个新节点到根节点的右子树(Right)的右子树(Right),导致根节点的平衡因子由-1变为-2。

      ③LR:插入一个新节点到根节点的左子树(Left)的右子树(Right),导致根节点的平衡因子由1变为2。

      ④RL:插入一个新节点到根节点的右子树(Right)的左子树(Left),导致根节点的平衡因子由-1变为-2。

      针对四种情况可能导致的不平衡,可以通过旋转使之变平衡,有两种基本的旋转:

      ①左旋转:将根节点旋转到(根节点的)右子树的右子树的位置

      ②右旋转:将根节点旋转到(根节点的)左子树的左子树的位置

  • 相关阅读:
    dynamic_cast
    struct 字节对齐详解
    CentOS修改系统的默认启动模式为命令号界面
    linux系统备份还原
    linux 缺少libxxx.a 静态链接库
    linux下SVN忽略文件/文件夹的方法
    取消svn add
    centos 中文乱码解决办法2
    安装rpm包时遇到error: Failed dependencies:错误
    Linux rpm 命令参数使用详解[介绍和应用]
  • 原文地址:https://www.cnblogs.com/Carmena/p/14149175.html
Copyright © 2011-2022 走看看