邻接表与邻接矩阵互换

//邻接表 互换 矩阵
//邻接矩阵-》邻接表
void MatrixToList(Graph &G,int A[][]){
    for(int i=0;i<G.vertices;i++){
        adjList[i].firstarc=null;
    }
    for(int i=0;i<G.vertices;i++){
        for(int j=0;j<G.vertices;j++){
            if(A[i][j]==1){
                ENode *p=(ENode*)malloc(sizeof(ENode));
                p->adjvex=j;
                //头插
                p->nextarc=adjList.firstarc;
                adjList[i].firstarc=p;
            }
        }
    }
}

//邻接表-》邻接矩阵
void ListToMat(Graph G,AdjMatrix &M){
    ENode *p;
    for(int i=0;i<G.vertices;i++){
        for(int j=0;j<G.vertices;j++){
            M.A[i][j]=0;
        }
    }
    for(int i=0;i<G.vertices;i++){
        p=adjList[i].firstarc;
        while(p!=null){
            M.A[i][p->adjvex]=1;
            p=p->nextarc;
        }
    }
}
posted @ 2019-12-26 10:36  ZzUuOo666  阅读(304)  评论(0编辑  收藏  举报