图的邻接表与由邻接表导出逆邻接表
void Reverse(ALGraph A,ALGraph &B)
{
int i,k;
ArcNode *p1,*p2;
B.vn=A.vn;
B.en=A.en;
for(i=1; i<=A.vn; i++)
{
scanf("%c",&B.adjlist[i].data);
B.adjlist[i].firstarc=NULL;
}
for(i=1; i<=A.vn; i++)
{
p1=A.adjlist[i].firstarc;
while(p1)
{
k=p1->adjvex;
p2=(ArcNode *)malloc(sizeof(ArcNode));
p2->adjvex=i;
p2->nextarc=B.adjlist[k].firstarc;
B.adjlist[k].firstarc=p2;
p1=p1->nextarc;
}
}
}