#include<iostream>
using namespace std;
const int maxSize = 99999;
int v[maxSize];int main()
{
return 0;
}
/*
图的存储结构的定义
float MGraph[5][5];
for (int i = 0; i < 5;++i)
for (int j = 0; j < 5; ++j)
MGraph[i][j] = MAX;*///图的链式存储结构的结构体定义
typedef struct ArcNode
{
int adjV; //顶点
struct ArcNode* next;
}ArcNode; //分支结构体
typedef struct
{
int data;
int count;
ArcNode* first;
}VNode; //顶点
typedef struct
{
VNode adjList[maxSize];
int n, e;
}AGraph; //图,两个变量表示边和顶点的个数
//图的深度优先遍历算法
void Visit(int a)
{
cout << endl;
}
void DFS(int v, AGraph *G)
{
//图的标志数组,初值为全0,当被访问过一次就置为1
int visit[maxSize];
visit[v] = 1;
Visit(v);
//取与所选顶点相关的第一条边
ArcNode *q = G->adjList[v].first;
while (q != NULL)
{
//判断q所指的边的另一边顶点是否被访问过
if (visit[q->adjV] == 0)
DFS(q->adjV, G);
q = q->next;
}
}//图的广度优先遍历算法
void BFS(AGraph *G, int v, int visit[maxSize])
{
ArcNode *p;
int que[maxSize], front = 0, rear = 0;
int j;
visit[v] = 1;
Visit(v);
rear = (rear + 1) % maxSize;
数据结构—图—各种算法代码
最新推荐文章于 2024-05-05 09:15:00 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)