数据结构总括
一、线性表
二、栈和队列
三、串
四、数和二叉树
五、图
1.图的存储
2.图的遍历
(1)广度优先搜索(BFS)
(2)深度优先搜索(DFS)
3.图的应用
(1)最小生成树
一个连通图的最小生成树包含所有图的所有顶点,并且只含尽可能少的边
性质:
1.最小生成树不是唯一的
2.最小生成树的边的权值之和是唯一的
3.最小生成树的边数为定点数减1
Prim算法:
初始时任取一个顶点加入,之后选择一个距离最近的顶点
克鲁斯卡尔(Kruskal):
按权值递增的顺序选择合适的边来构造最小生成树
(2)最短路径
迪杰斯特拉:
单源求最短路径
弗洛伊德算法
各顶点之间的最短路径
(3)拓扑排序
从AOE网中选择一个没有前驱的顶点并输出
从网中删除该顶点和所有以它为起点的有向边
(2)关键路径
以顶点表示事件,有向边表示活动
事件vk的最早发生时间ve(k)=Max{前驱结点+权值}
事件vk的最迟发生时间vl(k)
vl(汇点)=ve(汇点)
按逆拓扑有序求出最迟发生时间
vl(k)=MIn{后继结点-权值}
活动ai的最早开始事件e(i):
该活动弧的起点所表示的事件的最早发生时间
活动ai的最迟开始事件l(i)
该活动弧的终点所表示事件的最迟发生时间与该活动所需事件之差
活动最迟开始事件和最早开始事件的差额d(i)=l(i)-e(i)