• 数据结构之——树


    一、树

    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。

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

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

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

  • 相关阅读:
    LeetCode 977 有序数组的平方
    LeetCode 24 两两交换链表中的节点
    LeetCode 416 分割等和子集
    LeetCode 142 环形链表II
    LeetCode 106 从中序与后序遍历序列构造二叉树
    LeetCode 637 二叉树的层平均值
    LeetCode 117 填充每个节点的下一个右侧节点
    LeetCode 75 颜色分类
    redhat 7.4 挂载ntfs格式的u盘并且使用
    redhat 查看CPU frequency scaling(CPU频率缩放)
  • 原文地址:https://www.cnblogs.com/Carmena/p/14149175.html
Copyright © 2020-2023  润新知