logo

Grafen og dens representasjoner

Hva er Graph Data Structure?

EN Kurve er en ikke-lineær datastruktur som består av toppunkter og kanter. Toppunktene blir noen ganger også referert til som noder, og kantene er linjer eller buer som forbinder hvilke som helst to noder i grafen. Mer formelt er en graf sammensatt av et sett med toppunkter( I ) og et sett med kanter( OG ). Grafen er merket med G(V, E) .

Representasjoner av graf

Her er de to vanligste måtene å representere en graf på:

  1. Adjacency Matrix
  2. Tilknytningsliste

Adjacency Matrix

En tilstøtende matrise er en måte å representere en graf på som en matrise av boolske (0-er og 1-er).



La oss anta at det finnes n toppunkter i grafen Så lag en 2D-matrise adjMat[n][n] har dimensjon n x n.

  • Hvis det er en kant fra toppunktet Jeg til j , merke adjMat[i][j] som 1 .
  • Hvis det ikke er noen kant fra toppunktet Jeg til j , merke adjMat[i][j] som 0 .

Representasjon av urettet graf til tilstøtende matrise:

Figuren nedenfor viser en urettet graf. Til å begynne med er hele matrisen initialisert til 0 . Hvis det er en kant fra kilde til destinasjon, setter vi inn 1 til begge tilfeller ( adjMat[destinasjon] og adjMat [ mål]) fordi vi kan gå begge veier.

Undirected_to_Adjacency_matrix

Urettet graf til Adjacency Matrix

Representasjon av rettet graf til tilstøtende matrise:

Figuren nedenfor viser en rettet graf. Til å begynne med er hele matrisen initialisert til 0 . Hvis det er en kant fra kilde til destinasjon, setter vi inn 1 for akkurat det adjMat[destinasjon] .

Directed_to_Adjacency_matrix

Rettet graf til Adjacency Matrix

Tilknytningsliste

En rekke lister brukes til å lagre kanter mellom to toppunkter. Størrelsen på matrisen er lik antall hjørner (dvs. n) . Hver indeks i denne matrisen representerer et spesifikt toppunkt i grafen. Oppføringen ved indeksen i av matrisen inneholder en koblet liste som inneholder toppunktene som er ved siden av toppunktet Jeg .

La oss anta at det finnes n toppunkter i grafen Så lag en rekke av listen av størrelse n som adjList[n].

  • adjList[0] vil ha alle nodene som er koblet (nabo) til toppunktet 0 .
  • adjList[1] vil ha alle nodene som er koblet (nabo) til toppunktet 1 og så videre.

Representasjon av udirigert graf til tilgrensende liste:

Den urettede grafen nedenfor har 3 toppunkter. Så det vil bli laget en liste med størrelse 3, der hver indeks representerer hjørnene. Nå har toppunktet 0 to naboer (dvs. 1 og 2). Så sett inn toppunkt 1 og 2 ved indeksene 0 i matrisen. På samme måte, for toppunkt 1, har den to naboer (dvs. 2 og 0). Så sett inn toppunktene 2 og 0 ved indeksene 1 i matrisen. På samme måte, for toppunkt 2, sett inn naboene i listen.

Graph-Representation-of-Udirected-graph-to-Adjacency-Liste

Udirigert graf til tilgrensende liste

Representasjon av rettet graf til tilstøtende liste:

Grafen nedenfor har 3 hjørner. Så det vil bli laget en liste med størrelse 3, der hver indeks representerer hjørnene. Nå har toppunkt 0 ingen naboer. For toppunkt 1 har den to naboer (dvs. 0 og 2). Så sett inn toppunktene 0 og 2 ved indeksene 1 i matrisen. På samme måte, for toppunkt 2, sett inn naboene i listen.

Graph-Representation-of-Directed-graph-to-Adjacency-Liste

Rettet Graph til Adjacency-liste