📄 graphfile.h
字号:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define MAXSIZE 30
//顶点最大数
// #define MAX 100
typedef struct ArcNode{
int adjvex;//该弧所指向的顶点位置
struct ArcNode *nextarc;//指向下一条弧的指针
}ArcNode;
//建立结点
typedef struct VertexType{
int local;
char VexMessage[10];
}VertexType;
//顶点信息
typedef struct VNode{
VertexType data;
ArcNode * firstarc;//指向第一条依附该顶点的弧的指针
}VNode;
typedef struct{
VNode AdjList[MAXSIZE+1];
int vexnum,arcnum;//图的顶点数和边数
}ALGraph;
//建立图结构
typedef struct QNode{
int date;//图顶点位置
char *ch;//图顶点信息
struct QNode *next;
}QNode;
//建立队结点
typedef struct queue{
struct QNode *front;
struct QNode *rear;
}queue;
//建立队列
void CreatGraph(ALGraph &G);
//自行输入图时创建图
int FirstAdjVex(ALGraph &G,int v);
//V在G中所关联的第一条边的顶点
int NextAdjVex(ALGraph &G,int v,int w);
//G中相对于V所关联的下一条边的顶点
void DVisitGraph(ALGraph &G,int * Dvisit,int ivex,queue &Q1);
//深度优先遍历
void PutBound(ALGraph &G,queue &Q1);
//输出边集
void InitQueue(queue &Q);
//初始化队列
void EnQueue(queue &Q,int ivex);
//元素插入队列
void DeQueue(queue &Q,int u);
//删除队列中的第一个成员
void GVisitGraph(ALGraph &G,int * Gvisit,int ivex);
//广度优先遍历
int QueueEmpty(queue &Q);
//判断是否为空队列
void CreatFGraph(ALGraph &G);
//用文件创建图
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -