主要代码:
/****************************************************
@Title: 数据结构实验
@Name: <实验7-1> 图的遍历
@Object:
[实验目的]
实现图的存储结构;
实现图的深度优先和广度优先遍历
[实验提示]
1. 在 graph.h 中实现图的基本操作
2. 在 graph.h 中实现图的深度优先遍历和广度
优先遍历
@Include:
ds.h
类C通用模块
graph.h [*]
图的实现
@Usage:
请查看"TO-DO列表",根据要求完成代码
@Copyright: BTC 2004, Zhuang Bo
@Author: Zhuang Bo
@Date: 2004
@Description:
*****************************************************/
#include <stdio.h>
#include <stdlib.h>
#include "ds.h"
#include "graph.h"
Status printvex(VexType val);
void main()
{
MGraph g;
CreateGraph(g);
PrintAdjMatrix(g);
printf("\n深度优先遍历:\n");
DFSTraverse(g,0,printvex);
printf("\n广度优先遍历:\n");
BFSTraverse(g,0,printvex);
DestroyGraph(g);
system("pause");
}
Status printvex(VexType val)
{
write(val);
return OK;
}
#ifndef GRAPH_H_INCLUDED
#define GRAPH_H_INCLUDED
#define MAXQSIZE 64
#include <stdio.h>
#include "ds.h"
#define MAX_VERTEX_NUM 20 //最大顶点数
#define VexType char //顶点类型
#define ArcType int
#define INFINITY INT_MAX //无穷大
#define ElemType int
typedef struct {
VexType vexs[MAX_VERTEX_NUM];
ArcType arcs[MAX_VERTEX_NUM][MAX_VERTEX_NUM];
int