
【計】 adjacency multilist
neighbor; adjacency; abut; abut upon; abutment; adjoin; bound
【機】 adjoin
excessive; many; more; much; multi-
【計】 multi
【醫】 multi-; pleio-; pleo-; pluri-; poly-
again; layer; repeat; scale; weight
【計】 repetitive group
【醫】 hyper-; weight; wt.
rota; surface; table; watch
【計】 T
【化】 epi-
【醫】 chart; meter; sheet; table
【經】 schedule
鄰接多重表(Adjacency Multilist)是一種用于存儲無向圖的數據結構。它通過優化邊的存儲方式,有效避免了鄰接表在表示無向圖時對同一條邊的重複存儲問題,從而節省了存儲空間。其核心思想是每條邊隻存儲一次,并通過指針将關聯的頂點和邊連接起來。
頂點節點 (Vertex Node)
data
:存儲頂點的數據信息(如頂點名稱、編號)。firstedge
:指向與該頂點相關聯的第一條邊的指針。Vertex Node
或 VNode
。data
字段存儲 vertex data,firstedge
是指向第一條關聯邊 (incident edge) 的指針。邊節點 (Edge Node)
mark
:标志位(可選),可用于标記該邊是否被訪問過或用于算法處理。ivex
和 jvex
:存儲該邊所依附的兩個頂點在頂點數組中的索引。ilink
:指向依附于頂點 ivex
的下一條邊的指針。jlink
:指向依附于頂點 jvex
的下一條邊的指針。info
:可選字段,用于存儲邊的權值或其他相關信息。Edge Node
或 ENode
。mark
是訪問标記 (visit mark),ivex
/jvex
是頂點索引 (vertex index),ilink
/jlink
是鍊接指針 (link pointer),info
存儲邊信息 (edge information/weight)。Vi
,其 firstedge
指向與該頂點相連的某一條邊的邊節點(例如 E1
)。通過該邊節點的 ilink
或 jlink
指針(具體取決于 Vi
是該邊節點的 ivex
還是 jvex
),可以找到依附于 Vi
的下一條邊(例如 E2
)。如此鍊接下去,直到某個指針為空 (NULL
),表示該頂點關聯的邊已遍曆完。ilink
和 jlink
分别鍊入頂點 A 和頂點 B 的邊鍊表中。空間複雜度為 O(|V| + |E|)
(|V| 是頂點數,|E| 是邊數)。鄰接多重表特别適用于需要頻繁操作邊(如删除邊、查詢邊信息)且對空間要求較高的無向圖應用場景。
權威參考來源:
鄰接多重表 (Adjacency Multilist
) 是一種高效存儲無向圖的數據結構,其核心在于頂點節點 (Vertex Node
) 通過 firstedge
指針關聯邊節點 (Edge Node
),而邊節點通過 ilink
和 jlink
指針将依附于同一頂點的邊鍊接起來,實現了每條邊僅存儲一次,顯著節省了空間。理解其頂點節點和邊節點的結構及其鍊接方式是掌握該數據結構的關鍵。
鄰接多重表是無向圖的一種鍊式存儲結構,旨在優化傳統鄰接表的存儲效率,解決邊重複存儲的問題。以下從定義、結構、優勢及應用場景進行詳細說明:
鄰接多重表通過将每條邊的兩個頂點信息整合到一個邊表結點中,使該結點同時鍊接到兩個頂點的鍊表中。其核心目的是解決鄰接表存儲無向圖時每條邊需存儲兩次(即兩個頂點各存一次)的問題,從而減少存儲冗餘,提升操作效率。
頂點表結點
包含兩個域:
邊表結點
包含以下關鍵域:
鄰接多重表特别適用于以下場景:
頂點表:
頂點A → 邊1 → 邊3 → ...
頂點B → 邊1 → 邊2 → ...
頂點C → 邊2 → 邊3 → ...
邊表結點(邊1):
iVex=A, jVex=B
iLink→邊3, jLink→邊2
(圖中每條邊通過指針鍊接到兩個頂點的鍊表中)
鄰接多重表通過合并重複邊信息,解決了鄰接表在無向圖存儲中的冗餘問題,同時簡化了邊的操作流程。其鍊式結構兼顧了空間效率與操作靈活性,是無向圖存儲的理想選擇之一。
氨布醋胺安裝啟用地大物博定時的煩擾的發送區公司清算帳黃尿烯酸換向裝置膠體印膜膏角質性苔癬階級分析芥子胺機架接地決定最低刑看來空氣滲透空運保險單力所不及逆向傳導片電阻率染色不勻殺菌肽釋放宣言視覺幻覺症侍衛數據適配器隨機的拖船費微痛