数据结构–图的存储邻接表法
邻接矩阵:
数组实现的顺序存储,空间复杂度高,不适合存储稀疏图
邻接表:
顺序+链式存储
邻接表法(顺序+链式存储)
//边/弧
typedef struct ArcNode
{int adjvex; //边/弧指向哪个结点struct ArcNode *next; //指向下一条弧的指针//Infotype info; //边的权值
}ArcNode;
//顶点
typedef struct VNode
{VertexType data; //顶点信息ArcNode *first; //第一条边/弧
} VNode, AdjList[MaxVerTexNum];
//用邻接表存储图
typedef struct
{AdjList vertices;int vexnum, arcnum;
} ALGraph;
无向图:
边结点的数量是 2|E|,
整体空间复杂度为 O(|V| + 2|E|)
有向图:
边结点的数量是 |E|,
整体空间复杂度为 O(|V| + |E|)
图的邻接表表示方式并不唯一 \color{red}图的邻接表表示方式并不唯一 图的邻接表表示方式并不唯一