Program To Travers A Graph by BFS
Program To Travers A Graph by BFS
#include<stdio.h>
#include<stdlib.h>
struct queue
int size;
int f;
int r;
int* arr;
};
if(q->r==q->f){
return 1;
return 0;
if(q->r==q->size-1){
return 1;
return 0;
if(isFull(q)){
else{
q->r++;
q->arr[q->r] = val;
int a = -1;
if(isEmpty(q)){
else{
q->f++;
a = q->arr[q->f];
return a;
int main(){
struct queue q;
q.size = 400;
q.f = q.r = 0;
// BFS Implementation
int node;
int i = 1;
int visited[7] = {0,0,0,0,0,0,0};
int a [7][7] = {
{0,1,1,1,0,0,0},
{1,0,1,0,0,0,0},
{1,1,0,1,1,0,0},
{1,0,1,0,1,0,0},
{0,0,1,1,0,1,1},
{0,0,0,0,1,0,0},
{0,0,0,0,1,0,0}
};
printf("%d", i);
visited[i] = 1;
while (!isEmpty(&q))
printf("%d", j);
visited[j] = 1;
enqueue(&q, j);
return 0;
}
OUTPUT:-
1. WHEN THE ROOT IS 1
#include<stdio.h>
#include<stdlib.h>
int main(){
// DFS Implementation
DFS(0);
return 0;
}
OUTPUT:-
#include<stdlib.h>
struct Node{
int data;
};
ptr = ptr->next;
if (top==NULL){
return 1;
}
else{
return 0;
if(p==NULL){
return 1;
else{
return 0;
if(isFull(top)){
printf("Stack Overflow\n");
else{
n->next = top;
top = n;
return top;
if(isEmpty(tp)){
printf("Stack Underflow\n");
else{
top = (tp)->next;
int x = n->data;
free(n);
return x;
int main(){
// linkedListTraversal(top);
linkedListTraversal(top);
return 0;
OUTPUT:-
#include <stdio.h>
#include <stdlib.h>
struct Node
int data;
};
ptr = ptr->next;
if(n==NULL){
printf("Queue is Full");
else{
n->data = val;
n->next = NULL;
if(f==NULL){
f=r=n;
else{
r->next = n;
r=n;
int dequeue()
if(f==NULL){
printf("Queue is Empty\n");
}
else{
f = f->next;
val = ptr->data;
free(ptr);
return val;
int main()
linkedListTraversal(f);
enqueue(34);
enqueue(4);
enqueue(7);
enqueue(17);
linkedListTraversal(f);
return 0;
}
OUTPUT:-
#include<stdio.h>
#include<stdlib.h>
struct circularQueue
int size;
int f;
int r;
int* arr;
};
if(q->r==q->f){
return 1;
return 0;
if((q->r+1)%q->size == q->f){
return 1;
return 0;
if(isFull(q)){
else{
q->arr[q->r] = val;
int a = -1;
if(isEmpty(q)){
else{
a = q->arr[q->f];
return a;
int main(){
struct circularQueue q;
q.size = 4;
q.f = q.r = 0;
enqueue(&q, 12);
enqueue(&q, 15);
enqueue(&q, 1);
enqueue(&q, 45);
enqueue(&q, 45);
enqueue(&q, 45);
if(isEmpty(&q)){
printf("Queue is empty\n");
if(isFull(&q)){
printf("Queue is full\n");
}
return 0;
OUTPUT:-