C语言邻接表表示法创建无向图并输出
邻接表是图的一种链式存储结构,对图的每个顶点建立一个单链表,单链表第一个结点存放顶点信息,其余存放有关边信息。
邻接表由表头结点表和边表组成。
- 邻接表存储结构
#include <stdio.h>
#include <stdlib.h>
//- - - - -图的邻接表存储表示- ----
#define MAX 100 //最大顶点数
typedef struct ArcNode //边结点
{
int adjvex; //边顶点位置
struct ArcNode * nextarc;
}ArcNode;
typedef struct VNode //顶点
{
char data;
ArcNode * firstarc;
}VNode;
typedef struct
{
VNode AdjList[ MAX ];
int vexnum,arcnum; //图的当前顶点数和边数
}ALGraph;
- 创建无向图
算法步骤:
1、输入总顶点数和总边数
2、依次输入顶点信息存入顶点表中,并使表头结点的指针域初始化为NULL
3、创建邻接表。依次输入每条边依附的两个顶点,确定两个顶点的序号,将此边结点插入对应的边链表头部。
int LocateVex(ALGraph G,char v) //根据v点信息,找到相应坐标
{<