Untitled
unknown
plain_text
5 months ago
1.6 kB
3
Indexable
#include<stdio.h> int top= -1,a[20][20],vis[20],stack[20]; void dfs(int s,int n); void push(int item); int pop(); void main() { int n,e,i,s,j,u,v; printf("Enter the number of vertices in the graph:"); scanf("%d",&n); printf("Enter the number of edges in the graph:"); scanf("%d",&e); printf("Enter the edges(u,v):\n"); for(i=1;i<=e;i++) { scanf("%d %d",&u,&v); a[u][v]=1; } printf("THE ADJACENCY MATRIX IS\n"); for(i=1;i<=n;i++) { for(j=1;j<=n;j++) { printf("%d", a[i][j]); } printf("\n"); } for(i=1;i<=n;i++) vis[i]=0; printf("ENTER THE SOURCE VERTEX:"); scanf("%d",&s); dfs(s,n); } void push(int item) { if(top==19) printf("Stack overflow"); else stack[++top]= item; } int pop() { int k; if(top==-1) return(0); else { k= stack[top--]; return(k); } } void dfs(int s, int n) { int i,k; push(s); vis[s]=1; k=pop(); if(k!=0) printf("%d",k); while(k!=0) { for(i=1; i<=n; i++) if((a[k][i]!=0)&&(vis[i]==0)) { push(i); vis[i]=1; } k=pop(); if(k!=0) printf("%d",k); } for(i=1; i<=n; i++) if(vis[i]==0) dfs(i,n); }
Editor is loading...
Leave a Comment