目录
结构体定义
邻接表由顶点表和边表组成,定义好这两个结构体。然后再定义一个结构体包含顶点表,边数,顶点数即可。
//边表,存放与边相关的顶点和一个指针。
typedef struct ArcNode {
char adjvex;
struct ArcNode* NextArc;
}ArcNode;
//顶点表,存放各个顶点以及一个指向与该边相关顶点的指针。
typedef struct VertexNode {
Elemtype data;
ArcNode* first;
}VertexNode;
//图,包含顶点表数组,边数,顶点数。把顶点表定义为数组是后面存储边表需要定位是哪个顶点
typedef struct Graph {
int e, n;
VertexNode AdjList[MaxVertices];
}Graph;
创建邻接表
void CreateGraph(Graph* G)
{
int p, q;
printf("请输入顶点个数:");
scanf("%d", &G->e);
getchar();
printf("请输入边数:");
scanf("%d", &G->n);
getchar();
for (int i = 0; i < G->e; i++)
{
printf("请输入顶点名字:");
sca