Write program to implement the DFS and BFS algorithm for a graph.

#include <stdio.h>
#include <conio.h>
int graph[10][10],visited[10],view[10],queue[10];
int front = 0, rear = 0;
int n;
void dfs(int v) {
		int j;
		printf("%d ", v);
		visited[v] = 1;
		for (j = 1; j <= n; j++) {
				if (graph[v][j] == 1 && visited[j] == 0) {
						dfs(j);
				}
		}
}
void bfs() {
		int v, j;
		if (front == rear)
				return;
		v = queue[front++];
		printf("%d ", v);
		view[v] = 1;
		for (j = 1; j <= n; j++) {
				if (graph[v][j] == 1 && view[j] == 0 && visited[j] == 0) {
						queue[rear++] = j;
						visited[j] = 1;
				}
		}
		bfs();
}

void main() {
		int m, i, j, k, v;
		clrscr();
		printf("ENTER NO OF VERTICES: ");
		scanf("%d", &n);
		printf("ENTER NO OF EDGES: ");
		scanf("%d", &m);
		for (i = 1; i <= n; i++)
				for (j = 1; j <= n; j++)
						graph[i][j] = 0;
		printf("\nENTER EDGES (u v):\n");
		for (k = 1; k <= m; k++) {
				scanf("%d %d", &i, &j);
				graph[i][j] = graph[j][i] = 1;
		}
		for (i = 1; i <= n; i++)
				visited[i] = 0;
		printf("\nRECURSIVE DFS ORDER:\n");
		dfs(1);
		for (i = 1; i <= n; i++) {
				visited[i] = 0;
				view[i] = 0;
		}
		front = rear = 0;
		visited[1] = 1;
		queue[rear++] = 1;
		printf("\n\nRECURSIVE BFS ORDER:\n");
		bfs();
		getch();
}