我在找到兩個URL之間的最短路徑時遇到了問題。我們提供的.csv列出了一串用逗號分隔的網站。每個網站都可以訪問該頁面超鏈接中的下一個網站。例如,如果該文件讀取espn.com,espn.com/nba,espn.com/nbaschedules,則可以從espn.com轉到nba頁面,並從nba頁面轉到nba日程表。我的工作是找到從一個網站到另一個網站的最少點擊次數。這是我迄今爲止如何存儲文件。我正在使用的是用於存儲的STL unordered_map。URL的最短路徑算法
ifstream inFile;
ofstream outFile;
inFile.open("urls.csv");
string line;
unordered_map<string, vector<string>> urlAdjList;
while(getline(inFile, line)) //Reads each line one at a time.
{
int firstWord = 0;
istringstream iss(line);
string firstURL, url;
while(iss >> url)
{
if(firstWord == 0 && url != "|")
{
firstURL = url;
urlAdjList[firstURL];
firstWord = 1;
outFile << firstURL << endl;
}
else
urlAdjList[firstURL].push_back(url);
}
}
//Find the shortest path between mURL and nURL?
我的問題是我把它存儲正確嗎?我需要使用Dijkstra算法還是廣度優先搜索?