珠海网站定制开发,品牌网站建设服务机构,网站建设 公司 天津,做网站十大公司哪家好一.基本思想
1.邻接矩阵转换为邻接表#xff1a;
先设置一个空的邻接表#xff0c;然后查找邻接矩阵的值不为零元素#xff0c;找到后在邻接表的单链表对应位置加入表边节点。
2.邻接表转换为邻接矩阵#xff1a;
在邻接表上顺序取出每个表边结点#xff0c;将邻接矩阵…一.基本思想
1.邻接矩阵转换为邻接表
先设置一个空的邻接表然后查找邻接矩阵的值不为零元素找到后在邻接表的单链表对应位置加入表边节点。
2.邻接表转换为邻接矩阵
在邻接表上顺序取出每个表边结点将邻接矩阵对应单元置1. 二.代码实现
邻接矩阵转换为邻接表
template class T
VertexNodeT* change(MGraphT v){VertexNodeT* p;int i,j;struct ArcNode *q;pnew VertexNodeT [v.vertexNum];for(i0;iv.vertexNum;i){//邻接表赋初值p[i].vertexi;p[i].firstEdgeNULL;}for(i0;iv.vertexNum;i){for(j0;iv.vertexNum;j){if(v.arc[i][j]){qnew struct ArcNode;q-adjvexj;q-nextp[i].firstEdge;p[i].firstEdgeq;}}}return p;
}
邻接表转换为邻接矩阵
template class T
int** change(ALGraphT v){int **pnew int[v.vertexNum][v.vertexNum];int i,j;struct ArcNode *q;for(i0;iv.vertexNum;i){//邻接矩阵赋初值for(j0;jv.vertexNum;j){p[i][j]0;}}for(i0;iv.vertexNum;i){qv.adjList[i].firstEdge;while(q){p[i][q-adjvex]1;qq-next;}}return p;
}