#include <stdio.h>
#include <stdlib.h>
typedef struct node{int key;struct node * next;}node;
node * init_node(node * n,int b){n=(node *)malloc(sizeof(node));n->key=b;n->next=NULL;return n;}
node **list,*front=NULL,*rear=NULL;
void enqueue(node * n)
{ if(rear==NULL)front=rear=n;
else{ rear->next=n;rear=n; } }
void add_edge(int a,int b)
{ node * ptr=NULL,*n=NULL;
n=init_node(n,b);
if(list[a]->next==NULL){list[a]->next=n;}
else{ ptr=list[a]; while(ptr->next!=NULL)ptr=ptr->next;ptr->next=n;}
}
int main()
{int n=4,i,j;node * ptr=NULL;
list=(node **)malloc(n*(sizeof(node *)));
for(i=0;i<n;i++)
{ list[i]=(node *)malloc(n*(sizeof(node *)));list[i]->next=NULL;list[i]->key=i;}
add_edge(0,3);add_edge(0,1);add_edge(1,3);
add_edge(2,0);add_edge(3,2);add_edge(2,1);
for(j=0;j<n;j++)
if(list[j]->next!=NULL)
{ printf("[ %d ]",j);ptr=list[j]->next;
while(ptr!=NULL){printf("--> %d ",ptr->key);ptr=ptr->next;}
printf("\n");
}
printf("IN THE END......");
return 0;
}
#include <stdlib.h>
typedef struct node{int key;struct node * next;}node;
node * init_node(node * n,int b){n=(node *)malloc(sizeof(node));n->key=b;n->next=NULL;return n;}
node **list,*front=NULL,*rear=NULL;
void enqueue(node * n)
{ if(rear==NULL)front=rear=n;
else{ rear->next=n;rear=n; } }
void add_edge(int a,int b)
{ node * ptr=NULL,*n=NULL;
n=init_node(n,b);
if(list[a]->next==NULL){list[a]->next=n;}
else{ ptr=list[a]; while(ptr->next!=NULL)ptr=ptr->next;ptr->next=n;}
}
int main()
{int n=4,i,j;node * ptr=NULL;
list=(node **)malloc(n*(sizeof(node *)));
for(i=0;i<n;i++)
{ list[i]=(node *)malloc(n*(sizeof(node *)));list[i]->next=NULL;list[i]->key=i;}
add_edge(0,3);add_edge(0,1);add_edge(1,3);
add_edge(2,0);add_edge(3,2);add_edge(2,1);
for(j=0;j<n;j++)
if(list[j]->next!=NULL)
{ printf("[ %d ]",j);ptr=list[j]->next;
while(ptr!=NULL){printf("--> %d ",ptr->key);ptr=ptr->next;}
printf("\n");
}
printf("IN THE END......");
return 0;
}