Typer af grafer i datastruktur med eksempler
En graf er en ikke-lineรฆr datastruktur, der bestรฅr af hjรธrner og kanter. Toppunkterne indeholder informationen eller dataene, og kanterne fungerer som et bindeled mellem par af hjรธrner.
Grafer kan vรฆre af flere typer, afhรฆngigt af positionen af โโnoderne og kanterne. Her er nogle vigtige typer grafer:
Instrueret graf
Kanterne pรฅ den rettede graf indeholder pile, der betyder retningen. Pilen bestemmer, hvor kanten peger pรฅ eller ender.
Her er et eksempel pรฅ den rettede graf.

- Vi kan gรฅ fra Node A til D.
- Vi kan dog ikke gรฅ fra node D til node A, da kanten peger fra A til D.
- Da grafen ikke har vรฆgte, vil det at rejse fra toppunkt A til D koste det samme som at rejse fra D til F.
Udirigeret graf
Udirigeret graf indeholder kanter uden pegepinde. Det betyder, at vi kan rejse omvendt mellem to hjรธrner.
Her er et simpelt eksempel pรฅ den urettede graf.

I ovenstรฅende graf,
- Vi kan flytte fra A til B
- Vi kan ogsรฅ flytte fra B til A
- Kanter indeholder ingen retninger.
Det er et eksempel pรฅ en urettet graf med et begrรฆnset antal hjรธrner og kanter uden vรฆgt.
Vรฆgtet graf
Graf, der indeholder vรฆgte eller omkostninger pรฅ kanterne, kaldes en vรฆgtet graf. Den numeriske vรฆrdi reprรฆsenterer generelt de flytteomkostninger fra et toppunkt til et andet toppunkt. Bรฅde Directed og Undirected Graph kan have vรฆgte pรฅ deres kanter.
Her er et eksempel pรฅ en vรฆgtet graf (rettet).

- A til B, der er en kant, og vรฆgten er 5, hvilket betyder, at flytning fra A til B vil koste os 5.
- Et punkt til B, men i denne graf har B ingen direkte kant over A. Sรฅ vi kan ikke rejse fra B til A.
- Men hvis vi รธnsker at flytte fra A til F, er der flere veje. Stierne er ADF, ABF. ADF vil koste (10+11) eller 21.
- Her vil stien ABF koste (5+15) eller 20. Her tilfรธjer vi vรฆgten af โโhver kant i stien.
Her er et eksempel pรฅ en udirigeret graf med vรฆgte:

Her har kanten vรฆgt, men ingen retning. Sรฅ det betyder at rejse fra toppunkt A til D vil koste 10 og omvendt.
Tovejs graf
Tovejs- og urettede grafer har en fรฆlles egenskab. Det er
- Generelt kan den urettede graf have en kant mellem to toppunkter.
For eksempel:
- Her vil det koste 10,- at flytte fra A til D eller D til A.
- I en tovejsgraf kan vi have to kanter mellem to hjรธrner.
Her er et eksempel:

At rejse fra A til D vil koste os 17, men at rejse fra D til A vil koste os 12. Sรฅ vi kan ikke tildele to forskellige vรฆgte, hvis det er en urettet graf.
Uendelig graf
Grafen vil indeholde et uendeligt antal kanter og noder. Hvis en graf er uendelig, og den ogsรฅ er en forbundet graf, vil den ogsรฅ indeholde et uendeligt antal kanter. Her betyder de forlรฆngede kanter, at flere kanter kan forbindes til disse noder via kanter.
Her er et eksempel pรฅ den uendelige graf:

Nul graf
Null Graph indeholder kun noder eller hjรธrner, men uden kanter. Hvis der gives en graf G = (V, E), hvor V er hjรธrner og E er kanter, vil den vรฆre nul, hvis antallet af kanter E er nul.
Her er et eksempel pรฅ en null-graf:

Triviel graf
En grafdatastruktur betragtes som triviel, hvis kun et toppunkt eller en knude er til stede uden kanter.
Her er et eksempel pรฅ en trivial graf:
Multi graf
En graf kaldes en multigraf, nรฅr der er flere kanter mellem to spidser, eller spidsen har en lรธkke. Udtrykket "lรธkke" i Graph Data Structure betyder en kant, der peger pรฅ den samme knude eller vertex. Multigraf kan vรฆre instrueret eller urettet.
Her er et eksempel pรฅ en multigraf:
Der er to kanter fra B til A. Desuden har toppunktet E en selvlรธkke. Ovenstรฅende graf er en rettet graf uden vรฆgt pรฅ kanter.
Komplet graf
En graf er komplet, hvis hvert toppunkt har rettede eller urettede kanter med alle andre toppunkter.
Antag, at der er et samlet V-antal af hjรธrner, og hvert hjรธrne har nรธjagtig V-1 kanter. Sรฅ vil denne graf blive kaldt en komplet graf. I denne graftype er hvert hjรธrne forbundet med alle andre hjรธrner via kanter.
Her er et eksempel pรฅ en komplet graf med fem hjรธrner:
Du kan se pรฅ billedet, at det samlede antal noder er fem, og alle noder har prรฆcis fire kanter.
Forbundet graf
En graf kaldes en forbundet graf, hvis vi starter fra en knude eller et toppunkt og rejser alle knudepunkter fra startknuden. Til dette skal der vรฆre mindst รฉn kant mellem hvert par knudepunkter eller knudepunkter.
Her er et eksempel pรฅ en Connected Graph:
Her er en forklaring pรฅ ovenstรฅende "komplet grafeksempel"-graf:
- Hvis vi antager, at der ikke er nogen kant mellem C og F, kan vi ikke rejse fra A til G. Men kanten C til F gรธr os i stand til at rejse til en hvilken som helst knude fra en given knude.
- En komplet graf er en forbundet graf, fordi vi kan flytte fra en node til en hvilken som helst anden node i den givne graf.
Cyklisk graf
En graf siges at vรฆre cyklisk, hvis der er en eller flere cyklusser til stede i grafen.
Her er et eksempel pรฅ en cyklisk graf:
Her danner toppunkt A, B og C en cyklus.
En graf kan have flere cyklusser inde i den.
Instrueret acyklisk graf (DAG)
En graf kaldes Directed Acyclic Graph eller DAG, hvis der ikke er nogen cyklusser inde i en graf. DAG er vigtig, mens du gรธr Topologisk sortering eller finde fuldbyrdelsesordren. DAG er ogsรฅ vigtig for at skabe planlรฆgningssystemer eller scanningsafhรฆngighed af ressourcer osv. Ovenstรฅende graf indeholder dog ingen cyklus inde.
Her er et simpelt eksempel pรฅ en rettet acyklisk graf (DAG):
Cyklus graf
Cyklusgraf er ikke det samme som den cykliske graf. I Cycle Graph vil hver node have nรธjagtigt to kanter forbundet, hvilket betyder, at hver node vil have prรฆcis to grader.
Her er et eksempel pรฅ en cyklusgraf:
Bipartitegraf
Disse slags Grafer er specielle slags grafer, hvor toppunkter er tildelt to sรฆt.
Bipartite Graph skal fรธlge reglen:
- To sรฆt knudepunkter skal vรฆre adskilte, hvilket betyder, at alle knudepunkter skal opdeles i to grupper eller sรฆt.
- Samme sรฆt Hjรธrner bรธr ikke danne nogen kanter.
Euler graf
Grafdatastrukturer betragtes som en Euler-graf, hvis alle hjรธrnerne har en lige-nummereret grad. Udtrykket grad af toppunkter betyder antallet af kanter, der peger pรฅ eller peger ud fra et bestemt toppunkt.
Her er et eksempel pรฅ en Euler-graf:
Alle hjรธrner har lige grader. Toppunkt A, D, E og H har to grader. Her har node C fire grader, hvilket er lige.
Hamilton graf
Hamilton Graph er en Connect Graph, hvor du kan besรธge alle toppunkter fra et givet toppunkt uden at gรฅ tilbage til den samme node eller bruge den samme kant. Denne form for forbundet graf er kendt som "Hamilton-grafen". Stien, du besรธger for at kontrollere, om den givne graf er Hamilton-graf eller ej, er kendt som Hamilton-sti.
Her er et simpelt grafeksempel pรฅ en Hamilton:
Pรฅ dette billede kan vi besรธge alle hjรธrnerne fra enhver knude i ovenstรฅende graf. En af stierne kan vรฆre ADCHBE. Det er ogsรฅ muligt at finde en Hamilton Cycle. Hamilton-cyklus starter og slutter ved samme toppunkt. Sรฅ Hamilton Cycle vil vรฆre ADCHBEA.












