亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

去,Dijkstra:打印出路徑,而不僅僅是計算最短距離

去,Dijkstra:打印出路徑,而不僅僅是計算最短距離

Go
收到一只叮咚 2021-07-08 14:23:25
去吧,Dijkstra:打印出路徑,而不僅僅是計算最短距離。http://play.golang.org/p/A2jnzKcbWD我能夠使用 Dijkstra 算法找到最短距離,也許不是。代碼可以在這里找到。但是如果我不能打印出路徑就沒有用了。由于有很多指針,我無法弄清楚如何打印出權重最少的最終路徑。簡而言之,我如何不僅找到最短距離,而且還要在給定的代碼上打印出最短路徑?鏈接在這里:http://play.golang.org/p/A2jnzKcbWD代碼片段如下:const MAXWEIGHT = 1000000type MinDistanceFromSource map[*Vertex]intfunc (G *Graph) Dijks(StartSource, TargetSource *Vertex) MinDistanceFromSource {  D := make(MinDistanceFromSource)  for _, vertex := range G.VertexArray {    D[vertex] = MAXWEIGHT  }  D[StartSource] = 0  for edge := range StartSource.GetAdEdg() {    D[edge.Destination] = edge.Weight  }  CalculateD(StartSource, TargetSource, D)  return D}func CalculateD(StartSource, TargetSource *Vertex, D MinDistanceFromSource) {  for edge := range StartSource.GetAdEdg() {    if D[edge.Destination] > D[edge.Source]+edge.Weight {      D[edge.Destination] = D[edge.Source] + edge.Weight    } else if D[edge.Destination] < D[edge.Source]+edge.Weight {      continue    }    CalculateD(edge.Destination, TargetSource, D)  }}我對數組做了一些事情來查看正在更新的內容。http://play.golang.org/p/bRXYjnIGxy這給了 ms   [A->D D->E E->F F->T B->E E->D E->F F->T]
查看完整描述

2 回答

  • 2 回答
  • 0 關注
  • 225 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號