数据结构(C语言版)严蔚敏---图的操作的相关代码
Posted il_持之以恒_li
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据结构(C语言版)严蔚敏---图的操作的相关代码相关的知识,希望对你有一定的参考价值。
1. 将邻接表转换成邻接矩阵
main.cpp
void Convert(ALGraph G,MGraph &M)
M.vexnum = G.vexnum;
M.arcnum = G.arcnum;
for(int i=1;i<=G.vexnum;i++)
for(int j=1;j<=G.vexnum;j++)
M.Edge[i][j] = 0;
for(int i=1;i<=G.vexnum;i++)
ArcNode *p = G.vertices[i].first->next;
M.Vex[i] = G.vertices[i].data;
while(p)
M.Edge[i][p->adjvex] = 1;
p = p->next;
// 图的邻接表转换成邻接矩阵
运行结果:
所表示的图为:
实现邻接表的参考代码在这篇博客:数据结构(C语言版)严蔚敏(线性表、队列、栈、串、树、图等数据结构参考代码,持续更新中。。。)
2. 将邻接矩阵转换成邻接表
main.cpp
void Convert2(MGraph M,ALGraph &G)
G.arcnum = M.arcnum;
G.vexnum = M.vexnum;
for(int i=1;i<=M.vexnum;i++)
G.vertices[i].data = M.Vex[i];
G.vertices[i].first = (ArcNode*)malloc(sizeof(ArcNode));
ArcNode *p = G.vertices[i].first,*q;
p->next = NULL;
for(int j=1;j<=M.vexnum;j++)
if(M.Edge[i][j]!=0)
q = (ArcNode*)malloc(sizeof(ArcNode));
q->adjvex = j;
q->next = p->next;
p->next = q;
// 图的邻接矩阵转换成邻接表
运行结果:
所表示的图和1一样。
以上是关于数据结构(C语言版)严蔚敏---图的操作的相关代码的主要内容,如果未能解决你的问题,请参考以下文章
数据结构(C语言版)严蔚敏---二叉树遍历操作二叉树的相关代码
数据结构(C语言版)严蔚敏---二叉树遍历操作二叉树的相关代码
数据结构(C语言版)严蔚敏--->一些操作相关数据结构的题目
数据结构(C语言版)严蔚敏--->一些操作相关数据结构的题目