Daa
Daa
#include <iostream>
#include <vector>
#include <queue>
class Graph {
int V;
vector<vector<int>> adj;
public:
Graph(int V) {
this->V = V;
adj.resize(V);
}
void BFS(int s) {
vector<bool> discovered(V, false);
queue<int> q;
discovered[s] = true;
q.push(s);
int main() {
Graph g(6);
g.addEdge(0, 1);
g.addEdge(0, 2);
g.addEdge(1, 3);
g.addEdge(1, 4);
g.addEdge(2, 5);
g.BFS(0);
return 0;
}
DFS traversal
#include <iostream>
#include <vector>
#include <stack>
class Graph {
int V;
vector<vector<int>> adj;
public:
Graph(int V) {
this->V = V;
adj.resize(V);
}
void DFS(int s) {
vector<bool> discovered(V, false);
vector<int> parent(V, -1);
stack<int> st;
st.push(s);
if (!discovered[u]) {
discovered[u] = true;
cout << u << " ";
int main() {
Graph g(6);
g.addEdge(0, 1);
g.addEdge(0, 2);
g.addEdge(1, 3);
g.addEdge(1, 4);
g.addEdge(2, 5);
g.DFS(0);
return 0;
}
Prim’s Algorithm
#include <iostream>
#include <vector>
#include <queue>
while (!pq.empty()) {
int u = pq.top().second;
pq.pop();
if (inMST[u]) continue;
inMST[u] = true;
int main() {
int V = 5;
vector<vector<pii>> adj(V);
adj[0].push_back({2, 1});
adj[1].push_back({2, 0});
adj[0].push_back({3, 3});
adj[3].push_back({3, 0});
adj[1].push_back({3, 2});
adj[2].push_back({3, 1});
adj[1].push_back({1, 3});
adj[3].push_back({1, 1});
adj[1].push_back({4, 4});
adj[4].push_back({4, 1});
adj[2].push_back({5, 4});
adj[4].push_back({5, 2});
adj[3].push_back({6, 4});
adj[4].push_back({6, 3});
primMST(V, adj);
return 0;
}