问答题 已知有向图的邻接表和邻接矩阵定义如下: ﹟define MaxNum 50 ∥图的最大顶点数 typedef struct node { int adjvex; ∥邻接点域 struct node *next; ∥链指针域 } EdgeNode; ∥边表结点结构 typedef struct{ char vertex; ∥顶点域 EdgeNode *firstedge; ∥边表头指针 } VertexNode; ∥顶点表结点结构 typedef struct { VertexNode adjlist [MaxNum]; ∥邻接表 int n,e; ∥图中当前顶点数和边数 } ALGraph; ∥邻接表描述的图 typedef struct{ char vertex[MaxNum]; ∥顶点表 int adjmatrix [MaxNum][MaxNum]; ∥邻接矩阵 int n,e; ∥图中当前顶点数和边数 } AMGraph; ∥邻接矩阵描述的图 下列算法是将邻接表描述的图G1改为邻接矩阵描述的图G2,在空白处填上适当内容使算法完整: void f33(ALGraph G1,AMGraph *G2) { int i, j; EdgeNode *p; G2->n=G1.n; G2->e= (1) ; for (i=0; i<G1.n; i++) { G2->vertex[i]= (2) ; p=G1.adjlist[i].firstedge; for (j=0; j<G1.n; j++) G2->adjmatrix[i][j]=0; while (p) { G2->adjmatrix[i][p->adjvex]=1; (3) ; } } } (1) (2) (3)
【正确答案】
【答案解析】