#include<stdio.h>
void DFS(int adj[20][20], int n, int visited[10], int u) {
  int v, i;
  for (v = 1; v <= n; v++) {
    if (adj[u][v] == 1 && visited[v] == 0) {
      visited[v] = 1;
      printf("%d ", v);
      DFS(adj, n, visited, v);
    }
  }
}
void main() {
  int adj[30][20], n, visited[10], u, v, i, j;
  printf("Enter no of vertices:");
  scanf("%d", & n);
  for (i = 1; i <= n; i++) {
    for (j = 1; j <= n; j++) {
      adj[i][j] = 0;
    }
  }
  printf("Enter edge:");
  scanf("%d%d", & u, & v);
  while (u != 0) {
    adj[u][v] = 1;
    adj[v][u] = 1;
    printf("Enter another edge:");
    scanf("%d%d", & u, & v);
  }
  for (i = 1; i <= n; i++) {
    visited[i] = 0;
  }
  printf("Enter starting vertex:");
  scanf("%d", & u);
  visited[u] = 1;
  printf("%d ", u);
  DFS(adj, n, visited, u);
}
Note: Need to be arranged in compiler after copied
 
  
 OutPut:
Enter no of vertices:4
Enter edge:1 2
Enter another edge:1 3
Enter another edge:2 3
Enter another edge:3 1
Enter another edge:3 4
Enter another edge:4 4
Enter another edge:0 0
Enter starting vertex:2
2 1 3 4
 
