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

📄 graph.h

📁 广工--数据结构的课程设计 郑纬民教授版 图的十字链表实现 图的邻接表实现
💻 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 + -