最近在复习数据结构,顺便看看大一的时候写的代码,看完之后比当初有了更加深刻的体会。
希望这些能提供给初学者一些参考。
在VC++6.0下可运行,当初还写了不少注释。
【问题描述】
建立图的邻接矩阵存储结构,实现图的遍历
【基本要求】
·功能:建立图的邻接矩阵存储结构,实现图的BFS、DFS
·输入:输入连通图的顶点数、顶点信息、边数、顶点对序列及遍历的起始顶点序号
·输出:图的广度优先搜索序列、深度优先搜索
【模块划分】
1. 建立有向图的邻接表 CreateAdjMatrix()
2. 以邻接表作为存储结构实现深度优先搜索DFS()
3. 循环队列的初始化 InitQueue()
4. 判断循环队列是否为空 QueueEmpty()
5. 入队 EnQueue()
6. 出对 DeleteQueue()
7. 以邻接表作为存储结构实现广度优先搜索BFS()
8. main()函数调用 CreateAdjMatrix()形成有向图的邻接矩阵,调用函数DFS() 求得深度优先搜索序列,调用函数BFS()求得广度优先搜索序列
#include <stdio.h>
#include <string.h>
#define MaxSize 10
/*邻接矩阵的数据结构*/
typedef struct
{
char vexs[MaxSize]; //顶点数组