From 44d2306bf65e98318b410b30d8438084da27a9a2 Mon Sep 17 00:00:00 2001 From: CoderShivam2005 Date: Fri, 7 Nov 2025 18:42:18 +0530 Subject: [PATCH] added BFS-DFS-ALGO_with_TEST-CASES --- BFS_DFS_ALGO/BFS.cpp | 71 +++++++++++++++++++++++++++++++++++++++++++ BFS_DFS_ALGO/BFS.exe | Bin 0 -> 121027 bytes BFS_DFS_ALGO/DFS.cpp | 59 +++++++++++++++++++++++++++++++++++ 3 files changed, 130 insertions(+) create mode 100644 BFS_DFS_ALGO/BFS.cpp create mode 100644 BFS_DFS_ALGO/BFS.exe create mode 100644 BFS_DFS_ALGO/DFS.cpp diff --git a/BFS_DFS_ALGO/BFS.cpp b/BFS_DFS_ALGO/BFS.cpp new file mode 100644 index 0000000..99eaa58 --- /dev/null +++ b/BFS_DFS_ALGO/BFS.cpp @@ -0,0 +1,71 @@ +#include +#include +#include +using namespace std; + +void bfs(int start, vector>& adj, int n) { + vector visited(n, false); + queue q; + + visited[start] = true; + q.push(start); + + cout << "BFS Traversal: "; + + while (!q.empty()) { + int node = q.front(); + q.pop(); + cout << node << " "; + + for (int neighbour : adj[node]) { + if (!visited[neighbour]) { + visited[neighbour] = true; + q.push(neighbour); + } + } + } +} + +int main() { + int n, edges; + + cout << "Enter number of nodes: "; + cin >> n; + + cout << "Enter number of edges: "; + cin >> edges; + + vector> adj(n); + + cout << "Enter edges (u v):\n"; + for (int i = 0; i < edges; i++) { + int u, v; + cin >> u >> v; + + adj[u].push_back(v); + adj[v].push_back(u); + } + + int start; + cout << "Enter starting node for BFS: "; + cin >> start; + + bfs(start, adj, n); + + return 0; +} + +//Test Cases- +//--------INPUT--------------------------- +// Enter number of nodes: 5 +// Enter number of edges: 4 +// Enter edges (u v): +// 0 1 +// 0 2 +// 1 3 +// 2 4 +// Enter starting node for BFS: 0 + +//-----OUTPUT------------------------------- +// BFS Traversal: 0 1 2 3 4 + diff --git a/BFS_DFS_ALGO/BFS.exe b/BFS_DFS_ALGO/BFS.exe new file mode 100644 index 0000000000000000000000000000000000000000..0f928dd5515bfd352bf042f9c873df81919520e5 GIT binary patch literal 121027 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 literal 0 HcmV?d00001 diff --git a/BFS_DFS_ALGO/DFS.cpp b/BFS_DFS_ALGO/DFS.cpp new file mode 100644 index 0000000..800bdff --- /dev/null +++ b/BFS_DFS_ALGO/DFS.cpp @@ -0,0 +1,59 @@ +#include +#include +using namespace std; + +void dfs(int node, vector>& adj, vector& visited) { + visited[node] = true; + cout << node << " "; + + for (int neighbour : adj[node]) { + if (!visited[neighbour]) { + dfs(neighbour, adj, visited); + } + } +} + +int main() { + int n, edges; + + cout << "Enter number of nodes: "; + cin >> n; + + cout << "Enter number of edges: "; + cin >> edges; + + vector> adj(n); + vector visited(n, false); + + cout << "Enter edges (u v):\n"; + for (int i = 0; i < edges; i++) { + int u, v; + cin >> u >> v; + + adj[u].push_back(v); + adj[v].push_back(u); // if Undirected graph else remove this line + } + + int start; + cout << "Enter starting node for DFS: "; + cin >> start; + + cout << "DFS Traversal: "; + dfs(start, adj, visited); + + return 0; +} + +//TEST_CASES- +//-----INPUT--------------------- +// Enter number of nodes: 5 +// Enter number of edges: 4 +// Enter edges (u v): +// 0 1 +// 0 2 +// 1 3 +// 2 4 +// Enter starting node for DFS: 0 + +//-----------OUTPUT-------------- +// DFS Traversal: 0 1 3 2 4