数据结构期末复习知识点汇总(树+图+查找)

一颗二叉树中,叶子结点数等于双分支结点数+1

在有n个结点的二叉树的二叉链表表示中,空指针树为 2n-(n-1)=n+1;

二叉树转树后,原先的中序遍历就是转后的后根遍历
原先的先序遍历和转化后的先根遍历一样

满二叉树结点2*k-1 k为层数

完全二叉树度为1点结点只能是0或1

结点数n=n1+n0+n2 n为奇数时n1=0 n为偶数时n1=1

如果只知道先序遍历 和 后序遍历 不一定能求出中序遍历

哈夫曼树中 结点的度只能是0或2

哈夫曼树不唯一 调整任意左右孩子结点 不变

给定权值总数有n个,其哈夫曼树结点总数为2n-1

森林里有四棵树 每棵树结点个数为n1,n2,n3,n4

转换成二叉树后根的左子树一共有n1-1个结点 右子树一共有n2+n3+n4个结点

具有n个顶点的无向图至少有1个连通分量 最多n个连通分量

一个有n个顶点的强连通图至少有n个边

n个顶点 最多拥有 n(n-1)/2条边,所以8个顶点最多有28条边,要想28条边而且保持非连通,至少要9个节点,第九个节点是孤立的,不与任何节点连通。

n个顶点e条边用邻接表存储,则求每个顶点入度时间复杂度为N+E

在有向图中,所有顶点入度与出度和为边数2倍
在无向图中,所有顶点度数之和为边数2倍

对于一个有向图,若一个顶点的入度为 k1,、出度为 k2,则对应邻接表中该顶点单链表中的 结点数为k2

采用邻接表存储的图的深度优先遍历算法类似于二叉树的先序遍历
采用邻接表存储的图的广度优先遍历算法类似于二叉树的按层遍历

任何一个带权无向连通图的最小生成树—— 有可能不唯一

在求最小生成树时,Prim 算法更适合于稠密图(避圈法)
在求最小生成树时,Kruskal 算法更适合于疏密图(去圈法)

拓扑排序大致思路:
1.找入度为0的点并输出
2.删除入度为0的点及其相连接的边
3.重复1 2

有拓扑排序的图一定是有向无环图
在 AOE 网中,什么是关键路径从第一个事件到最后一个事件的最长路径

查找

在散列表中,所谓同义词就是具有相同散列地址的两个元素
线性探测法解决冲突的散列表成功查找的平均长度=查找次数总和/关键字总个数
不成功查找的平均长度=不成功总次数/表的长度

查找的方法中,平均查找长度与结点个数无关的查找方法是利用哈希表(散列表)

散列表的装填因子=装填元素个数/散列表长度

若用平方探测法解决冲突,则插入新元素时,不一定成功

哈希表的平均查找长度是哈希表的装填因子的函数。

当采用分块查找时,数据的组织方式为 数据分成若干块,每块内数据不必有序,但块间必须有序,每块内最大(或最小)的数 据组成索引块

折半查找与二叉排序树的时间性能有时不相同

采用顺序查找法查找长度为 n 的线性表时,查找不成功的平均查找长度为n

由同一关键字集合构造的各棵二叉排序树其形态不一定相同,平均查找长度也不一定相同

二叉排序树,其等概率成功查找的平均查找长度为 各节点高度和/结点数
二叉排序树,不成功平均查找长度为 本层高度*本层补上的叶子个数)/补上的叶子总数

AVL插入数据时的左旋右旋来达到平衡的具体操作过程
1、左-左型:做右旋
2、右-右型:做左旋转
3、左-右型:先做左旋,后做右旋。
4、右-左型:先做右旋,再做左旋。

AVL结点的平衡因子只能是0,1,-1 平衡因子=右子树高度-左子树高度

你可能感兴趣的:(个人总结)