1 邻接矩阵
#define MAX 50
typedef char VertexType;
typedef int EdgeType;
typedef struct{
VertexType Vex[MAX]; // 顶点表
EdgeType Edge[MAX][MAX]; // 边表
} MGraph;
2 邻接表
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;
3 带权无向图
4 带权有向图