数据结构知识点复习归纳(二)

第五章.树
1.二叉树的存储结构
(1)顺序存储
(2)链式存储

2.树的存储结构
(1)双亲表示法
(2)孩子表示法
(3)孩子兄弟表示法(又称二叉树表示法),也可用于实现树转换为二叉树

3.树和森林的遍历
(1)树的先根遍历=对应二叉树的先序遍历
森林的先序遍历=对应二叉树的先序遍历
(2)
树的后根遍历=对应二叉树的中序遍历
森林的中序遍历=对应二叉树的中序遍历

4.并查集
用树(森林)的双亲表示作为并查集的存储结构

5.平衡二叉树查找效率:O(log2n)

6.二分查找判定树唯一,二叉排序树(BST)的查找不唯一(相同关键字插入顺序不同导致BST不同)

7.平衡二叉树的插入旋转
(1)
LL型:一次右旋
LR型:先左再右
RR型:一次左旋
RL型:先右再左

8.哈夫曼树
(1)树的带权路径长度:所有叶节点带权路径长度之和
在含有n个带权叶结点的二叉树中,带权路径长度最小的二叉树称为哈夫曼树
(2)前缀编码:没有一个编码是另一个编码的前缀
哈夫曼编码用于压缩数据

第六章.图
1.概念
简单图:无重边,无自环
多重图:可以有重边和自环
完全图:任意两个顶点间都有边
生成子图:与母图的点集相同,边集是母图边集的子集
连通分量:无向图的极大连通子图
(极大:要求该连通子图包含其所有的边)
强连通分量:有向图的极大强连通子图
生成树:包含无向图中全部顶点的极小连通子图
稀疏图:边数很少的图 稠密图:边数很多的图
路径:指顶点序列
路径长度:路径上经过的边数

设图G的邻接矩阵为A,则A[i][j] 的n次幂从等于由顶点i到j长度为n的路径数目

十字链表->有向图
邻接多重表->无向图

4.广度(深度)优先生成树:
(1)邻接矩阵表示,广度(深度)优先生成树唯一
(2)邻接表表示,广度(深度)优先生成树不唯一

(1)邻接矩阵表示,DFS序列和BFS序列唯一
(2)邻接表表示,DFS序列和BFS序列不唯一

6.时间复杂度
(1)BFS
邻接矩阵表示,O(V*V)
邻接表表示,O(V+E)

(2)DFS
邻接矩阵表示,O(V*V)
邻接表表示,O(V+E)

7.最小生成树
(1)Prim算法(选点)
时间复杂度:O(V*V),适用于边稠密的图
(2)Kruskal算法(选边)
时间复杂度:O(ElogE),适用于边稀疏而顶点较多的图

8.dijkstra最短路
(1)时间复杂度O(V*V)

9.拓扑排序
(1)AOV网(顶点表示活动的网络):用DAG图表示工程,顶点表示活动,边<Vi,Vj>表示活动Vi必须先于Vj进行

10.关键路径
(1)AOE网(边表示活动的网络):带权有向图中,顶点表示事件,边表示活动,边上权值表示完成该活动的开销
(2)关键路径:从源点到汇点所有路径中,具有最大路径长度的路径
关键活动:关键路径上的活动
关键路径长度=工程的最短完成时间

第七章.查找
1.顺序查找:引入哨兵是为了避免判断数组是否越界
2.折半查找的判定树是一颗平衡二叉树
3.分块查找:
块内无序,块间有序
索引表中每个元素有各块的最大关键字和各块中第一个元素的地址
4.B树
(1)B树的阶:所有结点的孩子个数的最大值
(2)m阶B树,除根结点外所有非叶结点至少有 (m/2向上取整) 棵子树
根结点在不是终端结点的情况下,至少有两棵子树
(3)所有叶结点在同一层,且不带信息(实际上这些结点不存在)

5.B+树
(1)m阶B+树,每个分支结点最多有m棵子树
(2)m阶B+树,除根结点外所有非叶结点至少有 (m/2向上取整) 棵子树
根结点在不是终端结点的情况下,至少有两棵子树
(3)结点的子树个数与关键字个数相等
(4)所有叶结点包含全部关键字及指向相应记录的指针,相邻叶结点相互链接
(5)B+树的查找:
叶结点上的顺序查找(从左往右)
从根结点到叶结点的多路查找(从上往下,注意只有到叶结点才停止,因为只有结点里才包含了指向对应记录的指针)

6.散列表
(1)同义词:发生碰撞的不同关键字
(2)除留余数法:假定散列表表长为m,取一个不大于m但最接近于m的质数p
H(key)=key%p
(3)冲突处理
线性探测法:可能产生“聚集”
平方探测法:di=0,1,-1,4,-4,9,-9…
再散列法:
在这里插入图片描述
(4)散列表的查找效率取决于:散列函数,处理冲突的方法,装填因子
装填因子=表中记录数n/散列表长度m
散列表的平均查找长度与n,m无关,只与装填因子有关,装填因子越大,冲突可能性越大

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值