无向图的邻接矩阵转邻接表


先上代码

 1 void AMGraphToALGtaph(AMGraph AM, ALGraph &AL)
 2 {
 3     AL.vexnum = AM.vexnum;
 4     AL.arcnum = AM.arcnum;
 5     for (int i = 0; i < AM.vexnum; ++i) {
 6         AL.vertices[i].data = AM.vertices[i].data;
 7         AL.vertices[i].firstarc = nullptr;
 8         for (int j = 0; j < AM.vexnum; ++j) {
 9             if (AM.arcs[i][j] == 1) {
10                 ArcNode *arc = new ArcNode;
11                 arc->adjvex = j;
12                 arc->nextarc = AL.vertices[i].firstarc;
13                 AL.vertices[i].firstarc = arc;
14             }
15         }
16     }
17 }