#include #include #include struct node { int node; struct node *link; }; struct node **list; struct node ** Adjancencylist(int **,int ); void displaylist(struct node **,int ); int bridgeUtil(int,int*,int*,int*,int*); void bridge(int); int main() { int **a,n,i,j; list=NULL; scanf("%d",&n); a = (int **)malloc(n*sizeof(int *)); for(i=0;inode; int v = i; if (!visited[v]) { p[v] = u; bridgeUtil(v,visited,d,l,p); if(l[u]d[u]) { printf("%d %d\n",u,v); c=c+1; } } else if(v!=p[u]) { if(l[u]link; } //printf("%d\n",c); return c; } void bridge(int n) { int visited[n]; int d[n]; int l[n]; int p[n]; int i,c; for(i=0;inode = j; temp->link = NULL; } else { temp = list[i]; while(temp->link != NULL) temp = temp->link; temp->link = (struct node *) malloc(sizeof(struct node)); temp = temp->link; temp->node = j; temp->link = NULL; } } } } return list; } void displaylist(struct node **list,int n) { int i; struct node * temp; printf("Adjacency List Representation:"); for(i=0;inode); temp = temp->link; } } }