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

📄 graphfile.h

📁 这是关于数据结构习题书,清华大学出版社出版,上实验五的一个实验,自己写的,多多指教
💻 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 + -