路徑資料加總之後?? |
|
liyanzi
一般會員 發表:51 回覆:45 積分:19 註冊:2005-01-24 發送簡訊給我 |
不好意思~~想請問RedSnow 大大 您之前有幫忙我寫過最短路徑的程式 我將之前的程式作了一些修改 因為我變成要計算車速~~~所以我就將之前的距離~~轉換成車速計算 void FindspeedPath(DList *pointer, String end_road, int index) //以下是虛擬路徑,時速
{
// 如果不是路徑開頭則加上 "->" 符號以作分隔
if(roadPaths->Strings[index] != "")
roadPaths->Strings[index] = roadPaths->Strings[index]+"->";
// 加上找到的路名到路徑內
roadPaths->Strings[index] = roadPaths->Strings[index] + pointer->roadname; if (pointer->an_speed != 0 ){ // 如果有分支道路
if (pointer->roadname != end_road){ // 若不是 ComboBox2 所設之終點路名
int k = roadPaths->Add(roadPaths->Strings[index]); // 增加路徑陣列
roadLen.push_back(roadLen[index]); // 增加距離加總陣列,並設初值為之前加總距離
roadLen[k] = roadLen[k] + pointer->an_speed; // 加上本次分支道路的距離
FindPath(pointer->an_road, end_road, k); // 遞迴找尋這條分支道路
}
}
if (pointer->speed != 0) { // 如果後邊有連接道路
if (pointer->roadname != end_road) { // 若不是 ComboBox2 所設之終點路名
roadLen[index] = roadLen[index] + pointer->speed; // 加上到下一條道路的距離
FindPath(pointer->road, end_road, index); // 遞迴找尋這條道路的下一條路
}
}
} 在roadiobutton選擇方面~~多了一個 if(RadioButton3->Checked==true)
{
Form1 -> Memo1 -> Clear() ;
roadPaths = new TStringList();
int k = roadPaths->Add(""); // 新增第一條路徑
roadLen.push_back(0); //
FindspeedPath(find_head, ComboBox2->Text, k); // 開始找尋路徑 Memo1->Clear();
int shortRoad = 9999; // 比對最短路徑之用,先隨意設一個最大值
int shortIndex = 0; // 比對後,存放最短路徑的索引值
int PathNo = 0;
for(int i=0; i
附加檔案:78346_abc.rar
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |