You are on page 1of 8

PROGRAM-1

To understand the concept of Breadth First Search (bfs) using


a C program.

Program:#include<conio.h>
#include<stdio.h>
struct queue
{ int a[10]; clrscr();
Int front,rear;
};
struct queue q;
int a[10][10], visited[10],n;
void bfs(int);
void insertq(int);
int deleteq();
void main()
{
inti,j;
q.front=-1;
q.rear=-1;
printf("enter no of nodes\t");
scanf("%d",&n);
printf("enter adajency matrix\n");

for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
scanf("%d",&a[i][j]);
visited[i]=0;
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
printf("%d \t",a[i][j]);
printf("\t %d",visited[i]);
printf("\n");
}

bfs(a[0][0]);
getch();
}

Void bfs(int v)
{
visited[v]=1;
insertq(v);
int i;
while(q.front!=q.rear)
{

v=deleteq();
printf("%d \t",v);
getch();
for(i=0;i<n;i++)
{
if(a[v][i]==1 && visited[i]==0)
{

visited[i]=1;
insertq(i);
}

}
}
}
Void insertq(int x)
{
if(q.rear==9)
printf("overflow");
else
q.rear++;
q.a[q.rear]=x;
}
Int deleteq()
{

if(q.rear==q.front)
printf("empty");
else
q.front++;
return(q.a[q.front]);
}

PROGRAM-2
To understand the concept of Depth First Search (dfs) using a
C program.
PROGRAM:
#include<stdio.h>
#include<conio.h>
struct stack
{
int a[10];
int top;
};

struct stack s;

int adj[10][10],visited[10],n;
void dfs(int);
void push(int);
void pop();

void main()
{
int i,j;
clrscr();
s.top=-1;

printf("enter no. of nodes \t");


scanf("%d",&n);
printf("enter adjacency matrix \n");
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
scanf("%d",&adj[i][j]);
visited[i]=0;

}
printf("adjacency matrix \n");
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)

printf("%d \t",adj[i][j]);
printf("\t %d",visited[i]);
printf("\n");

}
push(0);
printf("%d",0);
dfs(0);
getch();
}

void dfs(int v)
{
int x,i;
visited[v]=1;
while(s.top!=-1)
{
x=1;
for(i=0;i<n && x==1;i++)
{
if(adj[v][i]==1 && visited[i]==0)
{
push(i);
printf("%d \n",i);
x=0;
}
}
i--;
if(x==1)
{
pop();
return;
}
else
dfs(i);

}
return;
}

void push(int x)
{
if(s.top==9)
printf("overflow");
else
{
s.top++;
s.a[s.top]=x;
}
}

void pop()
{
if(s.top==-1)
printf("empty");
else
s.top--;
}

You might also like