Graf datastruktur og Algorithms (Eksempel)
โก Smart oppsummering
Grafdatastruktur er en ikke-lineรฆr samling av hjรธrner og kanter der hver kant kobler sammen et par hjรธrner. Grafer modellerer virkelige nettverk som kart, sosiale forbindelser og nettsider, og stรธtter mange kraftige algoritmer.

Hva er en graf i datastruktur?
En graf er en ikke-lineรฆr datastruktur som bestรฅr av hjรธrner og kanter, der hjรธrnene inneholder informasjonen eller dataene, og kantene fungerer som en kobling mellom et par hjรธrner.
Den brukes til รฅ lรธse problemer i den virkelige verden, som รฅ finne den beste ruten til destinasjonen og ruten for telekommunikasjon og sosiale nettverk. Brukere regnes som en node i grafen, og ledningene er kantene som forbinder brukerne.
Hvis kanter er representert som E og toppunkter er representert som V, sรฅ kan grafen G skrives som sett med toppunkter og kanter, som f.eks. G (V, E).
Eksempel pรฅ graf i datastruktur
Her er et enkelt eksempel pรฅ en grafdatastruktur:
Det er en enkel, urettet graf (รฉn type graf). Her er mengden av noder: {A, B, C, D, E, F}. To noder danner en kant. For eksempel er A og B koblet sammen med en kant. A og F er imidlertid ikke koblet sammen med noen kanter.
Grafiske terminologier i datastruktur
Fรธlgende er noen viktige begreper som brukes i grafdatastrukturen:
| Begrep | Tekniske beskrivelser |
|---|---|
| Vertex | Hvert dataelement kalles et hjรธrne eller en node. I bildet ovenfor er A, B, C, D og E hjรธrnene. |
| Kant (bue) | Forbindelsesledd mellom to noder eller hjรธrner kalles en kant (bue). Den har to ender og er representert som (startKnopp, endingKnopp). |
| Udirigert kant | Det er en toveis kant. |
| Regissert Edge | Det er en ensrettet kant. |
| Vektet kant | En fordel med en verdi pรฅ seg. |
| Grad | I en graf kalles antallet kanter forbundet med et hjรธrne en grad. |
| Indegree | Det totale antallet innkommende kanter koblet til et toppunkt. |
| Utgradert | Det totale antallet utgรฅende kanter koblet til et toppunkt. |
| Selvlรธkke | En kant kalles en selvlรธkke hvis de to endepunktene sammenfaller. |
| Tilstรธtelse | Noder sies รฅ vรฆre tilstรธtende hvis en kant er forbundet mellom dem. |
Typer grafer i datastruktur
Her er listen over de vanligste typer grafer i datastrukturen:
- Regissert graf
- Udirigert graf
- Vektet graf
- Toveis graf
- Uendelig graf
- Null graf
- Triviell graf
- Multi Graph
- Komplett graf
- Tilkoblet graf
- Syklisk graf
- Regissert syklisk graf (DAG)
- Syklusgraf
- Todelt graf
- Euler graf
- Hamilton-graf
Hvordan representere en graf i datastruktur?
En graf lagres vanligvis i minnet ved hjelp av รฉn av to representasjoner. Valget pรฅvirker hvor mye minne grafen bruker og hvor raskt vanlige operasjoner kjรธrer.
- Nรฆrhetsmatrise: En todimensjonal V ร V-matrise der celle [i][j] er 1 (eller kantvekten) hvis det finnes en kant mellom hjรธrne i og hjรธrne j, og 0 ellers. Den tillater O(1) kantoppslag, men bruker O(Vยฒ)-rom, noe som gjรธr den best for tette grafer.
- Nรฆrhetsliste: En matrise med lister der hvert hjรธrne lagrer en liste over sine nรฆrliggende hjรธrner. Den bruker O(V + E)-rom og er effektiv for sparsomme grafer, og det er derfor de fleste grafer i den virkelige verden bruker den.
Du kan lese mer om disse i tilstรธtende liste og matriserepresentasjon av en graf opplรฆringen.
Anvendelser av grafdatastruktur
En graf har mange bruksomrรฅder. Det finnes mange algoritmer som bruker grafer. Her er noen av bruksomrรฅdene til grafen:
- Google Kart bruker grafer for รฅ finne krysset mellom to veier og beregne avstanden mellom to steder. For eksempel, Dijkstra, for รฅ finne den korteste avstanden mellom kilde- og destinasjonsstedet.
- Facebook bruker grafer for รฅ finne brukernes felles venner. Algoritmen deres betrakter hver bruker som en node i en graf.
- For ressursallokering brukes en DAG (Directed Acyclic Graph). Den kontrollerer ressursenes avhengighet.
- Ocuco Google Sรธkemotorer bruker grafer for รฅ lage rangeringen for nettsteder.
- Et kartping Enheten bruker grafdatastrukturen.
- A router og protokollen bruker grafen til รฅ lรฆre banen til destinasjonen.

