试利用Dijkstra算法求下图中从顶点a到其他各顶点间的最短路径,写出执行算法过程中各步的状态。
具体求解步骤如下:
第1步:选取顶点aS={a(0)}U={b(15),c(2),d(12),e(∞),f(∞),g(∞)}第2步:选取顶点cS={a(0),c(2)}U={b(15),d(12),e(10),f(6),g(∞)}第3步:选取顶点fS={a(0),c(2),f(6)}U={b(15),d(11),e(10),g(16)}第4步:选取顶点eS={a(0),c(2),f(6),e(10)}U={b(15),d(11),g(16)}第5步:选取顶点dS={a(0),c(2),f(6),e(10),d(11)}U={b(15),g(13)}第6步:选取顶点gS={a(0),c(2),f(6),e(10),d(11),g(13)}U={b(15)}第7步:选取顶点bS={a(0),c(2),f(6),e(10),d(11),g(13),b(15)}此时,起点c到各个顶点的最短距离就计算出来了:a(0),b(15),c(2),d(11),e(10),f(6),g(13)注:1.S是已计算出最短路径的定点的集合2.U是未计算出最短路径的定点的集合3.c(2)表示起点a到顶点c的最短距离是2