私はphpにダイクストラアルゴリズムを持っています。エッジを追加するには、次のように書く必要があります。
$g= new Graph();
$g->addedge("b", "c", 8);
$g->addedge("b", "e", 2);
データベースからすべてのエッジを追加したいと考えています。私は書いた:
$result= mysql_query("SELECT Start,End,Distance FROM test_stations");
while($row = mysql_fetch_array($result)){
$g->addedge($row['Start'],$row['End'],$row['Distance']);
$g->addedge($row['End'],$row['Start'],$row['Distance']);
}
しかし、それはエッジを追加していないようです。実行しようとすると、次のように出力されます: Undefined variable: nodes 。エッジを手動で追加してプログラムを実行すると、完全に機能します。誰か助けてくれませんか?
ノードとエッジに対してこの機能があります。
public $nodes = array();
public function addedge($start, $end, $weight = 0) {
if (!isset($this->nodes[$start])) {
$this->nodes[$start] = array();
}
array_push($this->nodes[$start], new Edge($start, $end, $weight));
}