Untitled
unknown
plain_text
3 years ago
797 B
5
Indexable
#include <iostream>
#include <vector>
#include <stack>
using namespace std;
// Funcția pentru parcurgerea în adâncime
void DFS(vector<vector<int> > graph, int start) {
stack<int> stack;
vector<int> visited;
stack.push(start);
while (!stack.empty()) {
int current = stack.top();
stack.pop();
if (find(visited.begin(), visited.end(), current) == visited.end()) {
visited.push_back(current);
cout << current << " ";
for (int neighbor : graph[current]) {
if (find(visited.begin(), visited.end(), neighbor) == visited.end()) {
stack.push(neighbor);
}
}
}
}
}
int main() {
// Crearea grafului
vector<vector<int>> graph = { {2, 3, 4}, {4, 3}, {1, 2}, {2, 1}, {4, 5} };
// Parcurgerea în adâncime începând de la nodul 1
DFS(graph, 1);
return 0;
}Editor is loading...