早教吧 育儿知识 作业答案 考试题库 百科 知识分享
早教吧考试题库频道 --> 计算机类考试 -->软考中级 -->

阅读以下说明,回答问题1~5,将解答填入对应的解答栏内。[说明] 编写一个函数根据用户输入的偶对(以

题目

阅读以下说明,回答问题1~5,将解答填入对应的解答栏内。

[说明] 编写一个函数根据用户输入的偶对(以输入。表示结束)建立其有向图的邻接表。一个图的邻接表存储结构定义如下:

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)

}

}

参考答案
正确答案:(1) g[k].data=k; (2) i! =0 &&j! =0 (3) s =(struct vexnode * ) malloc( sizeof( vex-node) ); (4) s- >next = g[i].link; (5) printf(“输入一个偶对:”); scanf("%d %d" &i &j);
(1) g[k].data=k; (2) i! =0 &&j! =0 (3) s =(struct vexnode * ) malloc( sizeof( vex-node) ); (4) s- >next = g[i].link; (5) printf(“输入一个偶对:”); scanf("%d, %d", &i, &j); 解析:本题的算法思想是:先产生邻接表的n个头结点(其结点数值域从1到n),然后接收用户输入的 (以其中之一为0结束标志),对于每条这样的边,申请一个邻接结点,并插入到vi的单链表中,如此反复,直到将图中所有边处理完毕,则建立了该有向图的邻接表。
看了阅读以下说明,回答问题1~5,...的网友还看了以下: