Rymdkomplexiteten för en justeringslista datastruktur är
o (v + e) , var:
* v är antalet toppar (noder) i diagrammet.
* e är antalet kanter i diagrammet.
Förklaring:
1. vertiklar: Du måste lagra varje toppunkt i diagrammet minst en gång (t.ex. i en matris, hashtabell eller någon annan struktur som kartlägger till listan över dess grannar). Detta bidrar med o (v) till rymdkomplexiteten.
2. kanter: För varje toppunkt lagrar du en lista över dess intilliggande toppar (dess grannar). I en enkel representation lagras varje kant (eller en referens/pekare till en granne) en gång för varje toppunkt som den är ansluten till. Därför lagras alla kanter i listorna.
* I en oriktad graf , varje kant (u, v) kommer att lagras två gånger:en gång i justitetslistan med toppunkt `u` och en gång i anställningslistan över Vertex` v`. Så du kommer effektivt att lagra 2 * E -kanter. Den ständiga faktorn (2) tappas emellertid i stor O -notation, vilket lämnar oss med O (E).
* I en -riktad graf , varje kant (U -> V) lagras endast en gång i den justerskande listan över Vertex `u`. Så du lagrar E -kanter, som översätter till O (E).
Varför O (V + E) är viktigt:
* glesa grafer: När E är betydligt mindre än v
2
(en gles graf), justeringslistan är mycket mer utrymmeseffektiv än adjacency-matrisen, som har en rymdkomplexitet av O (V
2
).
* täta grafer: När E är närmare v
2
(En tät graf), rymdkomplexiteten för båda representationerna blir likadan. De ständiga faktorerna i implementeringen kan dock fortfarande göra en skillnad.
Exempel:
Tänk på en graf med 5 toppar (A, B, C, D, E) och 6 kanter:
* A <-> b
* A <-> c
* B <-> c
* B <-> D
* C <-> e
* D <-> e
Här v =5 och e =6.
Adjektivlistan kräver utrymme för:
* Lagring av de 5 topparna (O (V)).
* Lagring av de 12 referenserna till grannarna (6 kanter, var och en lagrade två gånger eftersom det är en inriktad graf - O (2E) =o (e)).
Därför är det totala utrymmet O (V + E) =O (5 + 6) =O (11).
Sammanfattningsvis: Adjektivlistor ger ett utrymmeeffektivt sätt att representera grafer, särskilt glesa grafer, eftersom deras rymdkomplexitet skalar linjärt med antalet vertikaler och kanter.