问题及代码:
/*
* Copyright (c)2016,烟台大学计算机与控制工程学院
* All rights reserved.
* 文件名称:项目1.cpp
* 作 者:董雪
* 完成日期:2016年11月17日
* 版 本 号:v1.0
*问题描述:定义图的邻接矩阵和邻接表存储结构,实现其基本运算,并完成测试。
*输入描述:无
*程序输出:测试数据
*/
头文件graph.h代码:
#include <stdio.h>
#include <malloc.h>
#define MAXV 100 //最大顶点个数
#define INF 32767 //INF表示∞
typedef int InfoType;
//以下定义邻接矩阵类型
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; //顶点信息
int count; //存放顶点入度,只在拓扑排