邻接表与邻接矩阵互换

//邻接表 互换 矩阵
//邻接矩阵-》邻接表
void MatrixToList(Graph &G,int A[][]){
    for(int i=0;i){
        adjList[i].firstarc=null;
    }
    for(int i=0;i){
        for(int j=0;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){
        for(int j=0;j){
            M.A[i][j]=0;
        }
    }
    for(int i=0;i){
        p=adjList[i].firstarc;
        while(p!=null){
            M.A[i][p->adjvex]=1;
            p=p->nextarc;
        }
    }
}

你可能感兴趣的:(邻接表与邻接矩阵互换)