數據結構筆記——圖的存儲之鄰接表法

目錄

一、鄰接表法(順序+鏈式存儲)

二、鄰接表法

三、鄰接表和鄰接矩陣的區別

一、鄰接表法(順序+鏈式存儲)

//用鄰接表存儲的圖
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|)

注:圖的鄰接表表示方式不唯一

注:只要確定了頂點編號,圖的鄰接矩陣表示方式唯一

三、鄰接表和鄰接矩陣的區別

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章