#include <iostream>
#include <string>
#include <queue>
using namespace std;
#define MAXN 100
struct ArcNode
{
int adjVertex; //边到的顶点
ArcNode *next;
};
struct VNode
{
string data;
ArcNode *firstArc;
};
typedef VNode AdjList[MAXN];
struct Graph
{
int vertexNum;
int arcNum;
AdjList vertexs;
};
int Locate(Graph g,string str)
{
for(int i = 0;i<g.vertexNum;i++)
{
if(str == g.vertexs[i].data)
return i;
}
return -1;
}
void Create(Graph &g)
{
string start,end;
cout << "请输入顶点和边数:"<<endl;
cin>>g.vertexNum>>g.arcNum;
for(int i = 0;i<g.vertexNum;i++)
{
cout<<"请输入第"<<i<<"个顶点:"<<endl;
cin>>g.vertexs[i].data;
g.vertexs[i].firstArc = NULL;
}
for(int i = 0;i <g.arcNum;i++)
{
cout<<"请输入第"<<i<<"条边的起始和结束顶点"<<endl;
cin>>s
图的基本操作(基于邻接表):图的构造,深搜(DFS),广搜(BFS)
最新推荐文章于 2022-06-17 12:34:11 发布
该博客介绍了如何使用邻接表数据结构来表示图,并展示了如何进行深度优先搜索(DFS)、广度优先搜索(BFS)以及查找图的割点。通过读取用户输入的顶点和边来构造图,然后遍历图的邻接节点进行DFS和BFS。最后,定义了DFSCutPoint函数,用于找出图中的割点(关键顶点)。
摘要由CSDN通过智能技术生成