#include<iostream>
#include<string.h>
#include<queue>
#define MaxSize 100 //最大结点数
using namespace std;
typedef struct ArcNode //存储与结点相连的边
{
int adjvex; //该边所指向的顶点的位置
ArcNode* nextarc; //指向下一条与结点相连的边
int weight; //边的权重
}ArcNode;
typedef struct VNode //存储结点信息
{
char data; //结点数据域
ArcNode *firstArc; //结点指针域,指向与其相连的第一个边
}VNode;
class UndiGraph //无向图
{
public:
UndiGraph();
int LocateVex(char a); //寻找数据域为a的结点的位置
void CreatGraph(); //创建无向图
void Visit(int i); //访问i位置上的结点数据
void dfs(int a=0); //连通图的深度优先遍历
void DFS(int a=0); //图的深度优先遍历,这里的图可以是连通图,也可以是非连通图
void bfs(int a=0); //连通图广度优先遍历
void BFS(int a=0); //图的广度优先遍历,这里的图可以是连通图,也可以是非连通图
private:</
C++实现邻接表无向图及其两种遍历
最新推荐文章于 2024-07-10 11:47:17 发布
本文介绍了如何使用C++实现无向图的邻接表结构,并详细讲解了深度优先搜索(DFS)遍历图的算法步骤,通过实例代码加深理解。
摘要由CSDN通过智能技术生成