From 7e07a685e060e0a9d49656fbca7ce3f93140aa98 Mon Sep 17 00:00:00 2001 From: anchal hora Date: Mon, 29 Oct 2018 10:45:17 +0530 Subject: [PATCH] Updated --- C/algo | 108 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 108 insertions(+) create mode 100644 C/algo diff --git a/C/algo b/C/algo new file mode 100644 index 0000000..6c8bff2 --- /dev/null +++ b/C/algo @@ -0,0 +1,108 @@ +//Implement Breadth First Search + +#include +#include +#define MAX 100 +#define initial 1 +#define waiting 2 +#define visited 3 +int n; +int adj[MAX][MAX]; +int state[MAX]; +void create_graph(); +void BF_Traversal(); +void BFS(int v); +int queue[MAX], front = -1,rear = -1; +void insert_queue(int vertex); +int delete_queue(); +int isEmpty_queue(); +int main() +{ + create_graph(); + BF_Traversal(); + return 0; +} +void BF_Traversal() +{ + int v; + for(v=0; v rear) + return 1; + else + return 0; +} +int delete_queue() +{ + int delete_item; + if(front == -1 || front > rear) + { + printf("Queue Underflow\n"); + exit(1); + } + delete_item = queue[front]; + front = front+1; + return delete_item; +} +void create_graph() +{ + int count,max_edge,origin,destin; + printf("Enter number of vertices : "); + scanf("%d",&n); + max_edge = n*(n-1); + for(count=1; count<=max_edge; count++) + { + printf("Enter edge %d( -1 -1 to quit ) : ",count); + scanf("%d %d",&origin,&destin); + if((origin == -1) && (destin == -1)) + break; + if(origin>=n || destin>=n || origin<0 || destin<0) + { + printf("Invalid edge!\n"); + count--; + } + else + { + adj[origin][destin] = 1; + } + } +}