Graf datastruktur og Algorithms (Eksempel)
Hvad er en graf i datastruktur?
En graf er en ikke-lineรฆr datastruktur, der bestรฅr af toppunkter og kanter, hvor toppunkter indeholder informationen eller dataene, og kanterne fungerer som et bindeled mellem par af toppunkter.
Det bruges til at lรธse rigtige ordproblemer som at finde den bedste rute til destinationsstedet og ruten til telekommunikation og sociale netvรฆrk. Brugere betragtes som en node i grafen, og ledningerne er de kanter, der forbinder brugerne.
Hvis kanter er reprรฆsenteret som E og hjรธrner er reprรฆsenteret som V, sรฅ kan grafen G skrives som mรฆngden af โโhjรธrner og kanter, som f.eks. G (V, E)
Eksempel pรฅ graf i datastruktur
Her er et simpelt eksempel pรฅ grafdatastruktur:
Det er en simpel urettet graf (en slags graf). Her er sรฆttet af toppunkt: {A, B, C,D,E,F}. To hjรธrner skaber en kant. For eksempel er A og B forbundet med en kant. A og F er dog ikke forbundet med nogen kanter.
Grafterminologier i datastruktur
Fรธlgende er nogle vigtige udtryk, der bruges i grafdatastruktur:
| Semester | Beskrivelse |
|---|---|
| Vertex | Alle dataelementer kaldes et vertex eller en node. I ovenstรฅende billede er A, B, C, D & E hjรธrnerne. |
| Kant (bue) | Forbindende forbindelser mellem to noder eller toppunkter kaldes kant (Arc). Den har to ender og er reprรฆsenteret som (startendeVertex, endingVertex). |
| Udirigeret kant | Det er en tovejs kant. |
| Instrueret Edge | Det er en ensrettet kant. |
| Vรฆgtet kant | En kant med vรฆrdi pรฅ. |
| Degree | I Graph kaldes antallet af kanter forbundet med et toppunkt en grad. |
| Indegree | Det samlede antal indkommende kanter forbundet til et toppunkt. |
| Udgrade | Det samlede antal udgรฅende kanter forbundet til et toppunkt. |
| Selvlรธkke | En kant kaldes en selvlรธkke, hvis dens to endepunkter falder sammen. |
| Tilknytning | Hjรธrner siges at vรฆre tilstรธdende, hvis en kant er forbundet. |
Typer af grafer i datastruktur
Her er listen over de mest almindelige typer af grafer i datastrukturen:
- Instrueret graf
- Udirigeret graf
- Vรฆgtet graf
- Tovejs graf
- Uendelig graf
- Nul graf
- Triviel graf
- Multi graf
- Komplet graf
- Forbundet graf
- Cyklisk graf
- Instrueret acyklisk graf (DAG)
- Cyklus graf
- Bipartitegraf
- Euler graf
- Hamilton graf
Anvendelser af grafdatastruktur
En graf har mange use cases. Der er mange algoritmer, der bruger Graphs meget. Her er nogle af grafens applikationer:
- Google Maps bruger grafer til at finde skรฆringspunktet mellem to veje og beregne afstanden mellem to steder.
For eksempel: Dijkstra, for at finde den korteste afstand mellem kilde og destination. - Facebook bruger Graphs til at finde brugernes fรฆlles ven. Dens algoritme betragter hver bruger som en knude pรฅ en graf.
- Til ressourceallokering anvendes DAG (Direct Acyclic Graph). Det kontrollerer ressourcernes afhรฆngighed.
- Google Search Engine bruger grafer til at skabe placeringen for websteder.
- En kortlรฆgningsenhed bruger grafdatastrukturen.
- router og t's protokol bruger grafen til at lรฆre stien til destinationsstien.

