1 邻接矩阵
#define MAX 50
typedef char VertexType;
typedef int EdgeType;
typedef struct{
VertexType Vex[MAX]; // 顶点表
EdgeType Edge[MAX][MAX]; // 边表
} MGraph;
2 邻接表
- 顶点表结点:
data | firstarc |
---|---|
数据域 | 边表头指针 |
- 边表结点:
adjvex | info | nextarc |
---|---|---|
边指向的结点 | 边权值 | 指向下一条边 |
#define MAX 50
typedef int VertexType;
typedef int InfoType;
typedef struct ArcNode{ // 边表
int adjvex; // 边指向的结点
struct ArcNode *next; // 指向下一条边
InfoType info; // 边权值
} ArcNode;
typedef struct VNode{ // 顶点表
VertexType data; // 数据域
struct ArcNode *firstarc; // 边表头指针
} AdjList[MAX];
typedef struct{ // 图
AdjList vertices; // 邻接表
int vexnum; // 顶点数
int arcnum; // 边数
} ALGraph;