图
简单路径:0-1-3-2
非简单路径:0-1-3-0-1-2
简单回路:0-3-0
非简单回路:0-1-2-3-1-0
顶点数目达到最大
第三步是将p1的nextarc置空,这是头插法建立链表,如果是有向图的邻接表只有上面四步,逆邻接表是下面四步
邻接表可以不唯一因为他的插入顺序可以不一样
有向图的邻接表的边数为e,无向图的邻接表的边数为2e,他们的数量级都是e,所以空间复杂度都一样
十字链表:
邻接多重表:
黑色的线是与ivex为头相关的线,蓝色的线是以jvex为头相关的线
后面的遍历DFS(G,w)里的w是邻接矩阵行的w,而for循环里遍历的w是列的w,
空了这个DFS函数就完了,然后继续执行上一层的for循环。这就是回退
个人理解是:要选权值最低的并且还没在已落在生成树上的相邻顶点作为最小生成树的边
直接把权值最低的边选出来,注意要不形成回路
先从v0开始找最短路径,直达的只有v2是最短的,所以v2加入T集合,v2后面的就不用看了,然后计算出v0到其他顶点的距离,接着看因为v2的加入,有没有什么顶点的最短路径发生了改变,v0到v3本来是无穷,现在有最短路径13了,其他的都没有发生变化(也就是看v0本来到各个顶点的路径与v0经过v2再到达其他顶点的路径取最短有没有发生改变)接着再按路径最短的(这里有两个13,选择v1加入集合T)依此类推……
依次加入A,B,C,看看有没有两点间的最短距离发生改变
对AOV网进行拓扑排序,若最后有剩余顶点,则AOV网必定存在环
最早发生时间要找最大的,最晚发生时间要找最小的
e的算法是看弧尾事件的最早发生时间,l的算法是看弧头事件的最晚发生时间减去最早发生时间