From d2372945859a0ce02e17a6e9928bde998af16297 Mon Sep 17 00:00:00 2001 From: NasreenParween Date: Thu, 7 Jul 2022 17:49:05 +0530 Subject: [PATCH] Depth-First Search --- DAA_DFS.cpp | 109 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 109 insertions(+) create mode 100644 DAA_DFS.cpp diff --git a/DAA_DFS.cpp b/DAA_DFS.cpp new file mode 100644 index 0000000..cd21197 --- /dev/null +++ b/DAA_DFS.cpp @@ -0,0 +1,109 @@ +#include +#include +using namespace std; +#define MAX 30 +template +class node +{ + public: + node *next; + int vertex; +}; +template +class graphq +{ + public: + int data[MAX]; + int rear,front; + void DFS(int); + void readgraph(); + int empty(graphq *); + int full(graphq *); + void insert(int vi, int vj); + int discovered[MAX]; + int layer[MAX],parent[MAX]; + node *heads[MAX]; + int n; +}; + + +template +void graphq::DFS(int i) +{ + node *p; + cout<<"\t"<vertex; + if(!discovered[i]) + { + DFS(i); + } + p=p->next; + } +} +template +int graphq::empty(graphq *p) +{ + if(p->rear==-1) + return(1); + return(0); + +} +template +int graphq::full(graphq *p) +{ + if(p->rear==MAX-1) + return(1); + return(0); +} +template +void graphq::readgraph() +{ + int i,vi,vj, nofedges; + cout<<"\nEnter the number of vertices : "; + cin>>n; + for(i=0;i>nofedges; + for(i=0;i>vi>>vj; + insert(vi,vj); + insert(vj,vi); + } +} +template +void graphq::insert(int vi, int vj) +{ + node*P; + node*Q; + Q=new node; + Q->vertex=vj; + Q->next=NULL; + if(heads[vi]==NULL) + heads[vi]=Q; + else + { + P=heads[vi]; + while(P->next!=NULL) + P=P->next; + P->next=Q; + } +} +int main() +{ + int i; + graphqgq; + cout<<"\nCreate a node : "; + gq.readgraph(); + cout<<"\nDFS"; + cout<<"\nStarting node number : "; + cin>>i; + gq.DFS(i); + return 0; +}