目錄
一、鄰接表法(順序+鏈式存儲)
//用鄰接表存儲的圖
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|)
注:圖的鄰接表表示方式不唯一
注:只要確定了頂點編號,圖的鄰接矩陣表示方式唯一