📄 head.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 + -