Untitled

mail@pastecode.io avatar
unknown
plain_text
2 years ago
797 B
0
Indexable
Never
#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;
}