[说明] 编写一个函数根据用户输入的偶对(以输入。表示结束)建立其有向图的邻接表。一个图的邻接表存储结构定义如下:
# include < stdio. h >
# define MAXVEX 30
struct edgenode
int adjvex;
char info;
struct edgenode * next;
struct vexnode
char data;
struct edgenode * link;
typedef struct vexnode adjlist [MAXVEX];
实现要求的函数如下:
void creatadjlist ( adjlist g)
int i, j, k;
street vexnode * s;
for( k=1; k< =n; k+ +)
(1)
g [k]. link = NULL;
printf ( “输一个对:” );
scanf ("%d, %d", &i, &j);
while (2)
(3)
s- >adjvex =j;
(4)
g [i].link =s;
(5)
参考答案:(A) g[k].data=k;
(B) i! =0 &&j! =0
(C) s = (struct vexnode * ) malloc ( sizeof ( vex-node) );
(D) s- >next = g[i].link;
(E) printf (“输入一个偶对:”);
scanf ("%d, %d", &i, &j);
解析:[解答要点] 本题的算法思想是:先产生邻接表的n个头结点(其结点数值域从1到n),然后接收用户输入的