My Profile

I, Das ShrikKrishna J. MCA III IMSCD&R, Ahmednagar.

Monday 15 August 2011

BFS

#include<stdio.h>
#include<conio.h>
struct q
{
int data[20];
int front,rear;
}q1;
void add(int n)
{
q1.rear++;
q1.data[q1.rear]=n;
}
int del()
{
q1.front++;
return q1.data[q1.front];
}
void initq()
{
q1.front=q1.rear=-1;
}
int emptyq()
{
return (q1.rear==q1.front);
}
void main()
{
int m[10][10],n,i,j;
void bfs(int m[10][10],int n);
clrscr();
printf("\nenter how many vertices");
scanf("%d",&n);
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{
if(i!=j)
{
printf("is there is edge between vertex%d & %d(1/0)",i+1,j+1);
scanf("%d",&m[i][j]);
}
}
bfs(m,n);
getch();
}
void bfs(int m[10][10],int n)
{
int i,j,v,w;
int visited[20];
initq();
for(i=0;i<n;i++)
visited[i]=0;
printf("\nthe bread first traversal is:\n");
v=0;
visited[v]=1;
add(v);
while(!emptyq())
{
v=del();
printf("v%d",v+1);
 
 
 
 
 
 
 
 
 
for(w=0;w<n;w++)
{
if((m[v][w]==1)&&(visited[w]==0))
{
add(w);
visited[w]=1;
}
}
}
}
 

No comments:

Post a Comment

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | cheap international calls