📄 graphol.h
字号:
#include<string.h>
#include<ctype.h>
#include<malloc.h> /* malloc()等 */
#include<limits.h> /* INT_MAX等 */
#include<stdio.h> /* EOF(=^Z或F6),NULL */
#include<stdlib.h> /* atoi() */
#include<io.h> /* eof() */
#include<process.h> /* exit() */
/* 函数结果状态代码 */
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
#define OVERFLOW -2
typedef int Status; /* Status是函数的类型,其值是函数结果状态代码,如OK等 */
typedef int Boolean; /* Boolean是布尔类型,其值是TRUE或FALSE */
typedef int InfoType; /* 权值类型 */
#define MAX_VERTEX_NAME 3 /* 顶点字符串最大长度+1 */
typedef char VertexType[MAX_VERTEX_NAME];
/* c7-31.h 有向图的十字链表存储表示(与单链表的变量类型建立联系) */
#define MAX_VERTEX_NUM 20
typedef struct ArcBox1 /* 用来定义hlink的类型 */
{
int tailvex,headvex; /* 该弧的尾和头顶点的位置 */
InfoType *info; /* 该弧相关信息的指针,可指向权值或其他信息 */
struct ArcBox1 *hlink,*tlink; /* 分别为弧头相同弧尾相同的弧的链域 */
}ArcBox1;
typedef struct
{
int tailvex,headvex; /* 该弧的尾和头顶点的位置 */
InfoType *info; /* 该弧相关信息的指针,可指向权值或其他信息 */
ArcBox1 *hlink;
}ElemType;
typedef struct ArcBox
{
ElemType data;
struct ArcBox *tlink;
}ArcBox;
typedef struct /* 顶点结点 */
{
VertexType data;
ArcBox1 *firstin; /* 指向该顶点第一条入弧 */
ArcBox *firstout; /* 指向该顶点第一条出弧 */
}VexNode;
typedef struct
{
VexNode xlist[MAX_VERTEX_NUM]; /* 表头向量(数组) */
int vexnum,arcnum; /* 有向图的当前顶点数和弧数 */
}OLGraph;
#define LNode ArcBox /* 定义单链表的结点类型是图的表结点的类型 */
#define next tlink /* 定义单链表结点的指针域是表结点指向下一条出弧的指针域 */
typedef ArcBox *LinkList; /* 定义指向单链表结点的指针是指向图的表结点的指针 */
typedef int QElemType; /* 队列元素类型 */
typedef struct QNode
{
QElemType data;
struct QNode *next;
}QNode,*QueuePtr;
typedef struct
{
QueuePtr front,rear; /* 队头、队尾指针 */
}LinkQueue;
typedef int QElemType; /* 队列元素类型 */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -