怎么调用该函数:void CreateALGraph(ALGraph *&G) { int i,u,v,w; ArcNode *p; G=(ALGraph *)malloc(sizeof(ALGraph)); printf("输入顶点数和边数,用逗号分隔:"); scanf("%d,%d",&G->n,&G->e); //G->n = 6; //G->e = 9; printf("依次输入各顶点的信息:"); for(i=0;i<G->n;i++) { getchar(); scanf("%c",&(G->adjlist[i].data.info));//给有头节点的数据域置初值 G->adjlist[i].firstarc=NULL;//给所有头节点的指针域置初值 } printf("依次输入各条边的起点编号、终点编号、权值,中间逗号分隔:\n"); for (i=0;i<G->e;i++) { getchar(); scanf("%d,%d,%d",&u,&v,&w); p=(ArcNode *)malloc(sizeof(ArcNode)); //创建节点*p p->adjvex=v; p->info=w; p->nextarc=G->adjlist[u].firstarc; //将*p链到链表头 G->adjlist[u].firstarc=p; } } void DispAdj(ALGraph *G) //输出邻接表G { int i; ArcNode *p; for (i=0;i<G->n;i++) { p=G->adjlist[i].firstarc; printf("%c(%d): ",G->adjlist[i].data.info,i); while (p!=NULL) { printf("%3d(%2d)",p->adjvex,p->info); p=p->nextarc; } printf("\n"); } }
时间: 2024-01-07 11:04:42 浏览: 79
采用连接表存储有向图,设计算法判断任意两个顶点间是否存在路径.doc
可以这样调用该函数:
```
int main() {
ALGraph *G;
CreateALGraph(G);
DispAdj(G);
return 0;
}
```
其中,`CreateALGraph` 函数用来创建一个无向图的邻接表,`DispAdj` 函数用来输出该邻接表。在 `main` 函数中,我们先定义了一个指向 `ALGraph` 类型的指针 `G`,然后调用 `CreateALGraph` 函数来创建邻接表,并将其赋值给 `G`。最后调用 `DispAdj` 函数输出邻接表。
阅读全文