度数之和为边数的两倍,一定为偶数
边数至少为顶点个数-1
图可以是只有一个顶点,而没有任何一条边,但是不能没有任何顶点
n个顶点组成完全图,然后另一个顶点连一条边:
6*5/2 + 1 = 16
简单路径:任何环都不出现,只要没有环,就是简单路径,只要有环,就不是简单路径
回路:顶点和终点相同
简单回路: 只有顶点和终点重合,中间不出现其他任何回路,就是简单回路(只有一个大回路)
一个图如果能够进行拓扑排序,那么这个图一定不包含回路,包含回路,就无法进行拓扑排序
遍历表的同时,将边遍历了
迪杰斯特拉算法:求单点到其他点的最短路径
弗洛伊德算法:求任一点之间的最短路径
贪心:
普里姆算法:求最小生成树(贪心)
克鲁斯卡尔算法:求最小生成树(另一种贪心算法)
遍历:
深度优先算法
广度优先算法
A
最小生成树可能不唯一,但是最小生成树的代价一定唯一
只有当图中具有较小的相等取值的时候,才可能生成不同的最小生成树,如果当图中权值都不相同,则声称的最小生成树一定唯一
有些边的权值比较小,但是可能与已经在集合中的点构成回路,这样最小生成树中就不包含这个点
如果图中的所有边的权值不相同,则Prim算法和克鲁斯卡尔算法生成的最小生成树一定相同
有向图: 顶点的度,等于入度+出度,等于邻接矩阵的顶点对应的行的和+列的和
无向图,邻接矩阵一定对称
有向图,邻接矩阵不一定对称,如果不对称,一定是有向图
D
事件的最迟开始时间,从后往前推,各条路径中最小的
活动的最早开始时间,与出发事件的最早开始时间相同
活动的最迟开始时间,等于结束事件的最迟开始时间-活动持续时间
prim算法,每次取与已有点集合相连的边中最小的
kruskal算法每次只取最小的
无向图的连通分量,指的就是无向图的极大连通子图
图的遍历,必须要强调,所有点遍历且只能遍历一次
路径:由顶点和相邻顶点序偶构成的边所形成的序列
连通n个顶点的无向图,需要n-1条边,连通n个顶点的有向图,需要n条边
有向图如果是强连通,则任意两顶点之间都有路径
既保持图的连通,又使得边数最少
生成树:
连通图的生成树是包含图中全部顶点的一个极小连通子图,如果图中的顶点数为n,则生成树有n-1条边,如果减少一条边,就会变成非连通图,如果加上一条边,就会形成一个回路,非连通图中,连通分量的生成树构成了非连通图的生成森林
邻接表包括顶点向量和边向量
无向图中顶点的度,就是此顶点对应的链表的度
邻接表,包括顶点表和边表,链表指的就是边表
临界多重表:
每条边对应一个节点,每个顶点对应顶点表中的一个顶点
树和图计算节点的方式是不一样的
连通,强连通,指的是有路径就可以,而不管是否是直连
而完全图,表示的是,任意两点之间,必须有线直连
完全图,一定是连通图,而连通图,不一定是完全图