void CreateAdj(AdjGraph*& G, int A[7][7], int n, int e){ int i, j; ArcNode* p; G = (AdjGraph*)malloc(sizeof(AdjGraph)); for (int i = 0; i < n; i++) G->adjlist[i].firstarc = NULL; for (i = 0; i < n; i++) { for (j = n - 1; j >= 0; j--) { if (A[i][j] != 0 && A[i][j] != INF) { p = (ArcNode*)malloc(sizeof(ArcNode)); p->adjvex = j;//存放邻接点 p->weight = A[i][j];//存放权 p->nextarc = G->adjlist[i].firstarc; G->adjlist[i].firstarc = p; } } } G->n = n; G->e = e;}void DispAdj(AdjGraph* G){ int i; ArcNode* p; for (i = 0; i < G->n; i++) { p = G->adjlist[i].firstarc; printf("%3d:", i); while (p != NULL) { printf("%3d[%d]->", p->adjvex, p->weight); p = p->nextarc; } printf("\n"); }}