我有數據的帶交叉點(ID安全名稱)和街道(Intersection1 Intersection2距離)作爲文件所示:使用深度優先搜索在C++圖表
INTERSECTIONS:
198 0.8 alvemon and 28th
199 0.6 alvemon and 29th
200 0.8 alvemon and 30th
STREETS:
1 2 0.6
2 3 0.1
3 4 0.9
交點是頂點和街道邊緣。這裏是我的頭: 頂點頭:
#ifndef VERTEX_H
#define VERTEX_H
#include<list>
#include<string>
#include "global.h"
struct Vertex_{
int xsect;
double danger;
std::string xstreets;
std::list<Edge> EdgeList;
/*struct Vertex_ *next;
struct Vertex_ *prev;*/
};
#endif
邊緣標題:
#ifndef EDGE_H
#define EDGE_H
#include "global.h"
#include "vertex.h"
struct Edge_{
Vertex *adjvertex;
double distance;
/*struct edge *next;
struct edge *prev;*/
};
#endif
我這是圖了名單。我已經完成了所有設置,並且製作了街道/十字路口的圖形(或地圖)。我知道我需要使用深度優先搜索,因爲下面的需求,但不知道如何實現。如果有人能給我一個深度優先搜索的例子,那會很棒。現在我的任務需要我:
慢跑路徑要求
的safejogger程序應搜索提供的圖表找到慢跑符合下列要求的路徑: 路徑必須啓動並在同一路口結束(即頂點)由用戶指定的startingIntersection指示。 該路徑不應該重新訪問任何交叉點。換句話說,沒有頂點應該在路徑中出現兩次。 該路徑距離用戶指定距離目標的距離應該在1英里以內。
慢跑道安全
的safejogger程序應該計算機二級統計慢跑路徑,包括: 平均路徑安全:慢跑路徑內的所有路口的平均安全指數。最小路徑安全:慢跑路徑內所有路口的最小安全指數。
您有問題要問? –
是的。我如何在圖表中使用深度優先搜索? – ddwong
如果圖形是圓形的,它不是簡單的DFS。你是否試圖在一定距離內計算所有慢跑路線都是最危險的? – gvd