From 15bc2afcd72296f3db0f41d9335af5c9a215eff5 Mon Sep 17 00:00:00 2001 From: Archiita Date: Mon, 28 Oct 2019 20:28:01 +0530 Subject: [PATCH] Added Depth First Search in C --- C/DFS/depth_first_search.c | 53 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 C/DFS/depth_first_search.c diff --git a/C/DFS/depth_first_search.c b/C/DFS/depth_first_search.c new file mode 100644 index 00000000..be6a9673 --- /dev/null +++ b/C/DFS/depth_first_search.c @@ -0,0 +1,53 @@ +#include +#include +#include +//graphs implemented as adgency matrix +#define CONSTANT 1000 +void createGraph(bool map[][CONSTANT],int edges) +{ + while(edges--) + { + int vertex1,vertex2; + scanf("%d%d",&vertex1,&vertex2); + map[vertex1][vertex2]=true; + map[vertex2][vertex1]=true; + } + + +} +void visitedNeighbours(bool map[][CONSTANT],int current,bool *visited,int vertices) +{ + printf("%d ",current); + visited[current]=true; + + for(int i=1;i<=vertices;i++) + if(map[current][i]&&!visited[i]) + visitedNeighbours(map,i,visited,vertices); + +} +void DFS(bool map[][CONSTANT],int vertices) +{ + bool visited[CONSTANT]; + memset(visited,false,sizeof(visited)); + + for(int i=1;i<=vertices;i++) + if(!visited[i]) + visitedNeighbours(map,i,visited,vertices); + + + +} + + +int main() +{ + bool map[1000][1000]; + memset(map,false,sizeof(map)); + int vertices=10; + int edges=9; + + createGraph(map,edges); + DFS(map,vertices); + return 0; + +} \ No newline at end of file