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

📄 graphol.h

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