📄 graph.h
字号:
#include<string.h>
#include<stdio.h>
/* 函数结果状态代码 */
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
#define OVERFLOW -2
#define MAX_NAME 3
#define MAX_VERTEX_NUM 20
typedef int Status; /* Status是函数的类型,其值是函数结果状态代码,如OK等 */
typedef int Boolean; /* Boolean是布尔类型,其值是TRUE或FALSE */
typedef int InfoType; /* 网的权值类型 */
typedef char VertexType[MAX_NAME]; /* 顶点类型为字符串 */
typedef enum{DG,DN,UDG,UDN}GraphKind; /* {有向图,有向网,无向图,无向网} */
typedef struct /* 加 */
{
int adjvex; /* 该弧所指向的顶点的位置 */
InfoType *info; /* 网的权值指针 */
}ElemType;
typedef struct ArcNode /* 改 */
{
ElemType data; /* 除指针以外的部分都属于ElemType */
struct ArcNode *nextarc; /* 指向下一条弧的指针 */
}ArcNode; /* 表结点 */
typedef struct
{
VertexType data; /* 顶点信息 */
ArcNode *firstarc; /* 第一个表结点的地址,指向第一条依附该顶点的弧的指针 */
}VNode,AdjList[MAX_VERTEX_NUM]; /* 头结点 */
typedef struct
{
AdjList vertices;
int vexnum,arcnum; /* 图的当前顶点数和弧数 */
GraphKind kind; /* 图的种类标志 */
}ALGraph;
#define LNode ArcNode /* 加,定义单链表的结点类型是图的表结点的类型 */
#define next nextarc /* 加,定义单链表结点的指针域是表结点指向下一条弧的指针域 */
typedef ArcNode *LinkList; /* 加,定义指向单链表结点的指针是指向图的表结点的指针 */
typedef int QElemType ;
typedef struct QNode
{
QElemType data;
struct QNode *next;
}QNode,*QueuePtr;
typedef struct
{
QueuePtr front,rear; /* 队头、队尾指针 */
}LinkQueue;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -