º»¹®/³»¿ë
´ÙÀ½ »çÇ×À» À§ÇÑ CÇÔ¼ö¸¦ ÀÛ¼ºÇ϶ó.
(a) ¹«¹æÇâ ±×·¡ÇÁ¸¦ À§ÇÑ Á¤Á¡ÀÇ ¼ö¿Í °£¼±µéÀ» Çϳª¾¿ ÀоîµéÀδÙ.
(b) ±×·¡ÇÁ¸¦ À§ÇÑ ¿¬°á ÀÎÁ¢ ¸®½ºÆ®¸¦ ¸¸µç´Ù. (µÎ ¹ø ÀԷµǴ °£¼±Àº ¾ø´Ù°í °¡Á¤)
(c) »ý¼ºµÈ ÀÎÁ¢¸®½ºÆ®¸¦ ÀÌ¿ëÇÏ¿© ¿ª ÀÎÁ¢ ¸®½ºÆ®¸¦ »ý¼ºÇ϶ó.
(d) ÀÎÁ¢ ¸®½ºÆ®¿Í ¿ª ÀÎÁ¢ ¸®½ºÆ®¸¦ ÀμâÇÏ´Â ÇÔ¼ö¸¦ ÀÛ¼ºÇ϶ó.
#include
#include /*for malloc(), exit()*/
#define MAX_VERTICES 50 /*maximum size of vertex*/
#define IS_FULL(ptr) (!(ptr)) /*determine available memory*/
/*node struct prototype*/
typedef struct node *node_pointer;
struct node {
int vertex;
node_pointer link;
}node;
/*±¸Á¶Ã¼ ¸®½ºÆ® ¹è¿*/
node_pointer graph[MAX_VERTICES];
node_pointer inverse_graph[MAX_VERTICES];
int vertices; /*Á¤Á¡ÀÇ ¼ö*/
void read_graph(node_pointer *headnode); /*input from user*/
int insert_graph(node_pointer *headnode, int vertex1, int vertex2); /*make list*/
void inverse_adjacency_lists(int vertices); /*create inverse adjacency lists*/
void print_graph(n¡¦(»ý·«)