使用邻接矩阵实现的图结构
下一次实验课就要逼近了,我也不能坐以待毙,所以要积极起来呢。前几天就是在研究这个图结构是怎样实现的,看了很多的书,然后一知半解地照着书进行模仿。总觉得自己的思维局限在书中了,没有很好地发散。没有办法,因为考试是要考你掌握了知识没有,它是拒绝你创新的想法的。这真是考试的悲哀啊。
扯远了,我将书上的伪代码转化成了C++代码,保证能运行,但是这是看到的。有什么办法呢?有!不过有些麻烦。第一是在我的代码中加上cout语句,将所有顶点和弧的值输出,这样就可以看到输入的数值是否成功。第二种方法是在我的JGraph.h下设置断点,让程序停下来,然后在参数列表中搜索各个数组的值是否已经存入。使用邻接矩阵的话,只需要检查vexs数组和AdjMatrix二维数组的值是否存入即可。在我的代码中有提示。
更新于2010年12月8日:这是我最近,也是最新的成果,大家可以看看:http://student.csdn.net/space.php?uid=999749&do=blog&id=51393
- 下面是我的JGraph.h代码:
- /*----------------------------------------------------------------------------
- 蒋轶民制作:E-mail:jiangcaiyang123@163.com
- ------------------------------------------------------------------------------
- 文件名:JGraph.h
- ------------------------------------------------------------------------------
- 作用:这是使用邻接矩阵制作的图状结构,基本实现了图的创建操作。
- ------------------------------------------------------------------------------
- 调用规范:无
- /*--------------------------------------------------------------------------*/
- // 条件编译
- #ifndef _JGRAPH_H_
- #define _JGRAPH_H_
- /*--------------------------------------------------------------------------*/
- // 头文件
- #include <limits.h>
- // 定义的宏
- #define INFINITY INT_MAX
- #define MAX_VERTEX_NUM 20
- /*--------------------------------------------------------------------------*/
- // 定义一系列类型
- enum GraphKind { DG, DN, UDG, UDN };// 图的类型枚举
- typedef unsigned int VRType;
- typedef char InfoType;
- typedef struct
- {
- VRType adj;// 顶点关系类型
- InfoType* info;// 弧的信息
- } AdjMatrix[MAX_VERTEX_NUM][MAX_VERTEX_NUM];