Я пытаюсь создать алгоритм первого поиска глубины при задании двух строк. Я построил свой график, но у меня проблемы с алгоритмом поиска по ширине. Я не совсем уверен, что мне делать с моими int a и int b, которые я получаю от своей хэш-функции.Breadth First Search two Strings
Для контекста .... Узел вершины имеет имя ex. Джон, и набор строк, которые представляют собой списки других имен, с которыми Джон дружит. Мне дано два имени в основном из. Джон и Мэри, и я хочу распечатать пути, соединяющие эти два имени. У меня только код для BFS для целых чисел, поэтому я немного запутался. Любая помощь будет принята с благодарностью.
struct vertex_node {
string name;
set <string> edges;
};
void Graph::paths(string start, string end)
{
bool visited[capacity];
for(int i=0; i<capacity; i++){
visited[i]=false;
}
queue <string> q;
int a = hash_string(start) % capacity;
int b = hash_string(end) % capacity;
visited[a]=true;
q.push(start);
visited[a]=true;
while(!q.empty()){
start = q.front();
cout << start << " ";
q.pop();
for(int i=0;i < courses->get_capacity(); i++){
for(std:: set<string> :: iterator j = list[]->edges.begin();
j !=list[i]->edges.end(); j++){
if(!visited[*j]){
visited[*j] = true;
q.push(*j);
}
}
}
}
Ну, вы проверили свой код по строкам с помощью отладчика? –