From 7e07a685e060e0a9d49656fbca7ce3f93140aa98 Mon Sep 17 00:00:00 2001 From: anchal hora Date: Mon, 29 Oct 2018 10:45:17 +0530 Subject: [PATCH 1/2] 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; + } + } +} From d5409704791261fcce47dd3b9b9c7306986e91a6 Mon Sep 17 00:00:00 2001 From: anchal hora Date: Tue, 30 Oct 2018 02:21:52 +0530 Subject: [PATCH 2/2] Updated --- C/algo1 | 74 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 C/algo1 diff --git a/C/algo1 b/C/algo1 new file mode 100644 index 0000000..81a63a6 --- /dev/null +++ b/C/algo1 @@ -0,0 +1,74 @@ +//Depth First Search program in c. + +#include +#include +typedef struct node +{ + struct node *next; + int vertex; +}node; +node *G[20]; +//heads of linked list +int visited[20]; +int n; +void read_graph(); +//create adjacency list +void insert(int,int); +//insert an edge (vi,vj) in te adjacency list +void DFS(int); +void main() +{ + int i; + read_graph(); + for(i=0;ivertex; + if(!visited[i]) + DFS(i); + p=p->next; + } +} +void read_graph() +{ + int i,vi,vj,no_of_edges; + printf("Enter number of vertices:"); + scanf("%d",&n); + for(i=0;ivertex=vj; + q->next=NULL; + if(G[vi]==NULL) + G[vi]=q; + else + { + p=G[vi]; + while(p->next!=NULL) + p=p->next; + p->next=q; + } +}