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。

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

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

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

  • 相关阅读:
    pyqt中使用matplotlib绘制动态曲线 – pythonic
    pyqt开发教程-搭建环境和开发示例
    QPointer很大程度上避免了野指针(使用if语句判断即可,类似于dynamic_cast),而且使用非常方便 good
    qt5集成libcurl实现tftp和ftp的方法一:搭建环境(五篇文章)
    终于懂了:两个UI组件同时在操作是不可能实现的
    c/s 自动升级(WebService)
    web form中自定义HttpHandler仿mvc
    eclipse plugin 导出插件包
    TaskTracker执行map或reduce任务的过程2
    Jquery多级菜单插件Slimmenu使用说明
  • 原文地址:https://www.cnblogs.com/Carmena/p/14149175.html
Copyright © 2011-2022 走看看