编写一个程序 algo8-1,实现不带权图与带权图得邻接矩阵与邻接表得相互转换算法、输出邻接矩阵与邻接表得运算,并在此基础上设计一个主程序完成如下功能:(1)建立如图所示得有向图 G 得邻接矩阵,并输出之;(2)由有向图 G 得邻接矩阵产生邻接表,并输出之;(3)再由(2)得邻接表产生对应得邻接矩阵,并输出之
文件 graph、h 定义了图得邻接矩阵表示类型与邻接表表示类型,该头文件在代码如下:typedef int InfoType;#define MAXV 100 //最大顶点个数#define INF 32767 //INF 表示∞//以下定义邻接矩阵类型typedef struct{int no; //顶点编号InfoType info; //顶点其它信息} VertexType; //顶点类型typedef struct //图得定义{int edges[MAXV][MAXV]; //邻接矩阵int n,e; //顶点数,边数VertexType vexs[MAXV]; //存放顶点信息} MGraph; //图得邻接矩阵类型//以下定义邻接表类型typedef struct ANode //边得节点结构类型{int adjvex; //该边得终点位置struct ANode * nextarc; //指向下一条边得指针InfoType info; //该边得相关信息,这里用于存放权值} ArcNode;typedef int Vertex;typedef struct Vnode //邻接表头节点得类型{Vertex data; //顶点信息ArcNode * firstarc; //指向第一条边} VNode;typedef VNode AdjList[MAXV]; //AdjList 就是邻接表类型typedef struct{AdjList adjlist