File tree Expand file tree Collapse file tree 1 file changed +8
-7
lines changed Expand file tree Collapse file tree 1 file changed +8
-7
lines changed Original file line number Diff line number Diff line change @@ -41,14 +41,15 @@ func Dijkstra(gg *Graph, start int) {
4141 dist = gg .matrix [start ]
4242 flag [start ] = true //find start to start
4343 dist [start ] = 0 //start to start length
44+ fmt .Println ("dist : " , dist )
4445
45- k := 0
4646 //广度搜索
4747 for i := 0 ; i < gg .vexnum ; i ++ {
48+ k := 0
4849 min := MAX_VALUE
4950 //find min
50- for j := 0 ; j < gg . vexnum ; j ++ {
51- if flag [j ] == true && dist [j ] < min {
51+ for j := 0 ; j < len ( dist ) ; j ++ {
52+ if flag [j ] == false && dist [ j ] != MAX_VALUE && dist [j ] < min {
5253 min = dist [j ]
5354 k = j
5455 }
@@ -58,14 +59,14 @@ func Dijkstra(gg *Graph, start int) {
5859 flag [k ] = true
5960
6061 //update dist length
61- for u := 0 ; u < gg . vexnum ; u ++ {
62+ for u := 0 ; u < len ( dist ) ; u ++ {
6263 weigth := 0
6364 if gg.matrix [k ][u ] == MAX_VALUE {
6465 weigth = MAX_VALUE
6566 } else {
66- weigth = gg.matrix [k ][u ]
67+ weigth = min + gg.matrix [k ][u ]
6768 }
68- if flag [u ] == true && weigth < dist [u ] {
69+ if flag [u ] == false && weigth < dist [u ] {
6970 dist [u ] = weigth
7071 prev [u ] = k
7172 }
@@ -88,7 +89,7 @@ func initGG(gg *Graph, vexs []string) {
8889 gg .matrix [0 ][2 ] = 3
8990
9091 gg .matrix [1 ][0 ] = 5
91- gg .matrix [1 ][3 ] = 7
92+ gg .matrix [1 ][3 ] = 99
9293 gg .matrix [1 ][4 ] = 4
9394
9495 gg .matrix [2 ][0 ] = 3
You can’t perform that action at this time.
0 commit comments