目录
一、邻接表法(顺序+链式存储)
//用邻接表存储的图
typedef struct{
AdjList vertices;
int vexnum,arcnum;
}ALGraph;
//"顶点"
typedef struct VNode{
VertexType data; //顶点信息
ArcNode *first; //第一条边/弧
}VNode,AdjList[MaxVertexNum];
//边/弧
typedef struct ArcNode{
int adjvex; //边/弧指向哪个结点
struct ArcNode *next; //指向下一条弧的指针
//InfoType info; //边权值
}
对比:树的孩子表示法
孩子表示法:顺序存储各个节点,每个结点中保存孩子链表头指针
二、邻接表法
边结点的数量是2|E|,整体空间复杂度为O(|V| + 2|E|)
边结点的数量是|E|,整体空间复杂度为O(|V| + |E|)
注:图的邻接表表示方式不唯一
注:只要确定了顶点编号,图的邻接矩阵表示方式唯一