【数据结构】邻接表与邻接矩阵的转换

一.基本思想

1.邻接矩阵转换为邻接表:

先设置一个空的邻接表,然后查找邻接矩阵的值不为零元素,找到后在邻接表的单链表对应位置加入表边节点。

2.邻接表转换为邻接矩阵:

在邻接表上顺序取出每个表边结点,将邻接矩阵对应单元置1.

二.代码实现

邻接矩阵转换为邻接表

template 
VertexNode* change(MGraph v){
    VertexNode* p;
    int i,j;
    struct ArcNode *q;
    
    p=new VertexNode [v.vertexNum];
    for(i=0;iadjvex=j;
                q->next=p[i].firstEdge;
                p[i].firstEdge=q;
            }
        }
    }
    return p;
}

邻接表转换为邻接矩阵

template 
int** change(ALGraph v){
    int **p=new int[v.vertexNum][v.vertexNum];
    int i,j;
    struct ArcNode *q;
    
    for(i=0;iadjvex]=1;
            q=q->next;
        }
    }
    return p;
}

你可能感兴趣的:(数据结构与算法,数据结构,数据库,算法)