今回は Golang の勉強がてらダイクストラ法を実装してみる。 ダイクストラ法はグラフ理論の最短経路問題を解くためのアルゴリズムのひとつ。 DirectedGraph#Add() のところを編集するとグラフを書き換えることができる。 package main import ( "errors" "fmt" ) // ノード type Node struct { name string // ノード名 edges []*Edge // 次に移動できるエッジ done bool // 処理済みかを表すフラグ cost int // このノードにたどり着くのに必要だったコスト prev *Node // このノードにたどりつくのに使われたノード } func NewNode(name string) *Node { node := &Node{name, []*Edge{}, false, -