#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <limits.h>
#define MAX_VERTEX_NUM 20 //最大顶点个数
#define INFINITY INT_MAX //最大值∞
typedef char VertexType; //顶点向量类型
typedef int VRType;
typedef int InfoType;
typedef int QElemType;
//图的数组存储表示
typedef struct{
VertexType vexs[MAX_VERTEX_NUM]; //顶点向量
VRType arcs[MAX_VERTEX_NUM][MAX_VERTEX_NUM];; //邻接矩阵,于无权图1、0表示两个顶点是否相邻,对于有权图为权值
int vexnum,arcnum; //图的顶点数和弧数
}MGraph;
bool visited[MAX_VERTEX_NUM]; //标记顶点是否被访问,访问为true,否则为false
//查找顶点在顶点向量中的位置
int locateVertex(MGraph umg, VertexType v)
{
int i;
for(i=0;i<umg.vexnum;i++)
{
if(v == umg.vexs[i])
return i;
}
return -1;
}
//创建无向(有向)无权图
createUMGraph(MGraph *umg)
{
int i,j,v;
char v1,v2;
printf("输入无权图的顶点数和边数\n");
scanf("%d %d",&(*umg).vexnum,&(*umg).arcnum);
for(v=0;v<(*umg).vexnum;v++)
visited[v] = false;
getchar();
printf("输入顶点名称\n");
for(v=0;v<(*umg).vexnum;v++)
{
printf("输入第%d个顶点名称:",v);
scanf("%c",&(*umg).vexs[v]);
getchar();
}
/
图的遍历(DFS、BFS)使用邻接矩阵(数组)作为存储结构--C语言
最新推荐文章于 2022-03-11 23:43:48 发布
本文详细介绍了如何使用C语言通过邻接矩阵实现图的深度优先搜索(DFS)和广度优先搜索(BFS)遍历。内容包括图的基本概念,邻接矩阵的构建以及DFS和BFS的具体算法步骤。通过对这两种遍历方法的理解,读者将能更好地掌握图的遍历操作。
摘要由CSDN通过智能技术生成