//图的十字链表存储
//杨鑫
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_VERTEX_NUM 20
#define MAX_Info 80
#define MAX_VERTEX_NAME 5
#define MAXQSIZE 5 // 最大队列长度(对于循环队列,最大队列长度要减1)
typedef char InfoType;
typedef char VertexType[MAX_VERTEX_NAME];
typedef int QElemType;
int visited[MAX_VERTEX_NUM]; // 访问标志数组
int(*VisitFunc)(VertexType); // 函数变量
// 弧(边)结构体
typedef struct ArcBox
{
int tailvex,headvex; // 该弧的尾和头顶点的位置
struct ArcBox *hlink,*tlink; // 分别为弧头相同和弧尾相同的弧的链域
InfoType *info; // 该弧相关信息的指针(可无)
}ArcBox;
//顶点结构体
typedef struct
{
VertexType data;
ArcBox *firstin,*firstout; // 分别指向该顶点第一条入弧和出弧
}VexNode;
//图的结构体
typedef struct
{
VexNode xlist[MAX_VERTEX_NUM]; // 表头向量(数组)
int vexnum,arcnum; // 有向图的当
数据结构之---C语言实现图的十字链表存储表示
最新推荐文章于 2025-02-26 15:37:45 发布