⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 head.h

📁 C语言实现的图的遍历
💻 H
字号:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define  VertexMax  30			//图中总顶点数
#define  QueueMax  31			//队列最大值
//------------------------------------------------------------------
typedef struct EdgeAM{			//声明图形边结构
	bool Mark;						//表示该边是否被搜索过
	int length;						//边的长度
	int Vertex1;					//该边的起点
	int Vertex2;					//该边的终点
	struct EdgeAM *Edge1;			//指向下一条依附于顶点Vertex1的边
	struct EdgeAM *Edge2;			//指向下一条依附于顶点Vertex2的边
}NextEdge;

typedef struct{					//声明图形顶点结构
	int id;							//顶点位置
	char data[20];					//顶点数据
	NextEdge *Edge;					//下一邻接顶点
}MNode;

typedef  struct{				//声明图形结构
	MNode Adjmulist[VertexMax];		//邻接多重表
	int VexNum,EdgeNum;				//图中的顶点数和边数
}AMGraph;
//-----------------------------------------------------------------------------------
int Queue[QueueMax];			//声明队列结构
int Front=-1;						//头指针
int Rear=-1;						//尾指针
//------------------------------------------------------------------------------------
int Visited [VertexMax];		//图中顶点的查找记录
int TreeEdge [60];				//记录遍历过程中边的顺序
int index=0;					//遍历顺序指针
int length=0;					//从北京到广州不经过郑州的路长	
bool state=false;				//菜单进入标志位
AMGraph g;						//生成图对象
//--------------------------------------------------------------------------------------
void Init_Gam(AMGraph &g);
//初始化邻接多重表。

void Creat_Gam(AMGraph &g,FILE *fp);
//建立邻接多重表,表示一个图。

void  Dty_Gam(AMGraph &g);
//销毁邻接多重表。

void DFS_Gam(AMGraph g,int vnum,int Visited[]);
//深度优先遍历多重邻接表

void BFS_Gam(AMGraph g,int vnum,int Visited[]);
//广度优先遍历多重邻接表。

int Enqueue(int Vertex);
//队列存入

int Dequeue();
//队列取出

void Path_Gam(AMGraph g,int v);
//从北京到广州不经郑州的函数

int Main_Menu();
//主菜单

void AML_Menu();
//邻接多重表菜单

void Init_AMnu();
//生成邻接表菜单

void DFS_AMnu(AMGraph g);
//邻接多重表深度优先遍历菜单

void BFS_AMnu(AMGraph g);
//邻接多重表广度优先遍历菜单

void Path_AMnu(AMGraph g,int v);
//从北京到广州不经郑州的路径菜单 

void End_Menu();
//结束菜单

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -