資料結構與演算法學習筆記——圖(Graph)
阿新 • • 發佈:2019-01-12
什麼是圖:
圖的一些概念:
頂點:圖中的元素
邊: 圖中的一個頂點可以與任意其他頂點建立連線關係,這種建立的關係就是邊
度: 與頂點相連線的邊的條數(無向圖概念)
無向圖: 邊無方向的圖
有向圖: 邊有方向的圖
稀疏圖(Sparse Matrix) : 頂點很多,但每個頂點的邊並不多
帶權圖(weighted graph) 。在帶權圖中,每條邊都有一個權重 (weight)
有向圖的一些概念:
入度(In-degree) : 表示有多少條邊指向這個頂點
出度(Out-degre) : 表示有多少條邊是以這個頂點為起點推向其他頂點
圖的儲存:
鄰接矩陣(Adjacency Matrix):
鄰接矩陣的底層依賴一個二維陣列。對於無向圖來說,如果頂點i與頂點j之間有邊,我們就將 Alij]和AJ[i標記為1;對於有向圖來說,如果頂點i到頂點j之間,有一條箭頭從頂點i指向頂點j的邊,那我們就將Ai0j]標記為1。同理,如果有一條箭頭從頂點j指向頂點i的邊,我們就將Alji]標記為1。對於帶權圖,陣列中就儲存相應的權重。
優點: 簡單直觀,缺點: 浪費儲存空間
鄰接表儲存法: