图(邻接表法)
/*
* 邻接表的创建和图的遍历的代码实现
*/
#include <stdio.h>
#include <stdlib.h>
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define OVERFLOW -2
#define MAX_NUM 20
typedef int Status;
typedef int QElemType;
typedef char VexType;
/*
* 邻接表存储结构
*/
typedef struct EdgeNode
{
int adjvex; // 顶点的位置
struct EdgeNode *next; // 指向下一条边的指针
} EdgeNode, *EdgeLink;
typedef struct VexNode
{
VexType data; // 顶点数据
EdgeNode *firstEdge; // 指向第一条依附该顶点的边的指针
} VexNode, AdjList[MAX_NUM];
typedef struct
{
AdjList adjList;
int vexNum, edgeNum; // 顶点数和边数
} ALGraph;
/*
* 队列存储结构(用于图的遍历)
*/