Typer grafer i datastruktur med eksempler
โก Smart oppsummering
Grafer i datastruktur er ikke-lineรฆre samlinger av hjรธrner og kanter klassifisert i familier som rettede, urettede, vektede, sykliske, asykliske, komplette, sammenhengende, todelte, Euler- og Hamilton-grafer basert pรฅ struktur.

En graf er en ikke-lineรฆr datastruktur som bestรฅr av hjรธrner og kanter. Hjรธrnpunktene inneholder informasjonen eller dataene, og kantene fungerer som en kobling mellom et par hjรธrner.
Grafer kan vรฆre av flere typer, avhengig av plasseringen av nodene og kantene. Her er noen viktige typer grafer:
Regissert graf
Kantene pรฅ den rettede grafen inneholder piler som angir retningen. Pilen bestemmer hvor kanten peker mot eller slutter. Her er et eksempel pรฅ den rettede grafen.
Regissert graf
- Vi kan gรฅ fra node A til D.
- Vi kan imidlertid ikke gรฅ fra node D til node A, ettersom kanten peker fra A til D.
- Siden grafen ikke har vekter, vil det รฅ reise fra toppunkt A til D koste det samme som รฅ reise fra D til F.
Udirigert graf
En urettet graf inneholder kanter uten pekere. Det betyr at vi kan bevege oss omvendt mellom to hjรธrner. Her er et enkelt eksempel pรฅ en urettet graf.
Udirigert graf
I grafen ovenfor,
- Vi kan bevege oss fra A til B.
- Vi kan ogsรฅ bevege oss fra B til A.
- Kanter inneholder ingen retninger.
Det er et eksempel pรฅ en urettet graf med et endelig antall hjรธrner og kanter uten vekter.
Vektet graf
En graf som inneholder vekter eller kostnader pรฅ kantene kalles en vektet graf. Den numeriske verdien representerer vanligvis den bevegelige kostnaden fra ett hjรธrne til et annet. Bรฅde rettede og ikke-rettede grafer kan ha vekter pรฅ kantene sine. Her er et eksempel pรฅ en vektet graf (rettet).
Regissert graf med vekt
- Fra A til B er det en kant, og vekten er 5, som betyr at รฅ flytte fra A til B vil koste oss 5.
- A peker mot B, men i denne grafen har B ingen direkte kant over A. Sรฅ vi kan ikke reise fra B til A.
- Men hvis vi รธnsker รฅ gรฅ fra A til F, finnes det flere veier. Veiene er ADF og ABF. ADF vil koste (10+11) eller 21.
- Her vil banen ABF koste (5+15) eller 20. Her legger vi sammen vekten av hver kant i banen.
Her er et eksempel pรฅ en urettet graf med vekter:
Urettet graf med vekt
Her har kanten vekt, men ingen retning. Sรฅ det betyr at รฅ reise fra toppunkt A til D vil koste 10 og omvendt.
Toveis graf
Toveis grafer og ikke-veis grafer har en felles egenskap. Det er:
- Vanligvis kan en urettet graf ha รฉn kant mellom to hjรธrner.
For eksempel:
- Her vil det รฅ flytte fra A til D eller D til A koste 10.
- I en toveis graf kan vi ha to kanter mellom to hjรธrner.
Her er et eksempel:
Toveis graf
ร reise fra A til D vil koste oss 17, men รฅ reise fra D til A vil koste oss 12. Sรฅ vi kan ikke tildele to forskjellige vekter hvis det er en urettet graf.
Uendelig graf
Grafen vil inneholde et uendelig antall kanter og noder. Hvis en graf er uendelig og ogsรฅ er en sammenhengende graf, vil den ogsรฅ inneholde et uendelig antall kanter. Her betyr de utvidede kantene at flere kanter kan vรฆre koblet til disse nodene via kanter. Her er et eksempel pรฅ den uendelige grafen:
Uendelig graf
Null graf
En nullgraf inneholder bare noder eller hjรธrner, men uten kanter. Hvis gitt en graf G = (V, E), hvor V er hjรธrner og E er kanter, vil den vรฆre null hvis antallet kanter E er null. Her er et eksempel pรฅ en nullgraf:
Null graf
Triviell graf
En grafdatastruktur regnes som triviell hvis bare ett hjรธrne eller รฉn node er tilstede uten kanter. Her er et eksempel pรฅ en triviell graf:
Multi Graph
En graf kalles en multigraf nรฅr det er flere kanter mellom to hjรธrner, eller nรฅr hjรธrnet har en lรธkke. Begrepet ยซlรธkkeยป i grafdatastruktur betyr en kant som peker mot samme node eller hjรธrne. En multigraf kan vรฆre rettet eller ikke-rettet. Her er et eksempel pรฅ en multigraf:
Det er to kanter fra B til A. Dessuten har hjรธrne E en selvlรธkke. Grafen ovenfor er en rettet graf uten vekter pรฅ kantene.
Komplett graf
En graf er komplett hvis hvert hjรธrne har rettede eller ikke-rettede kanter med alle andre hjรธrner. Anta at det er totalt V antall hjรธrner, og hvert hjรธrne har nรธyaktig V-1 kanter. Da vil denne grafen bli kalt en komplett graf. I denne typen graf er hvert hjรธrne forbundet med alle andre hjรธrner via kanter. Her er et eksempel pรฅ en komplett graf med fem hjรธrner:
Du kan se pรฅ bildet at det totale antallet noder er fem, og alle nodene har nรธyaktig fire kanter.
Tilkoblet graf
En graf kalles en sammenhengende graf hvis vi starter fra en node eller et hjรธrne og kan bevege oss til alle nodene fra startnoden. For dette bรธr det vรฆre minst รฉn kant mellom hvert par av noder eller hjรธrner. Her er et eksempel pรฅ en sammenhengende graf:
Her er en forklaring pรฅ den tilkoblede grafen ovenfor:
- Forutsatt at det ikke er noen kant mellom C og F, kan vi ikke reise fra A til G. Kanten C til F lar oss imidlertid reise til en hvilken som helst node fra en gitt node.
- En komplett graf er en koblet graf fordi vi kan flytte fra en node til en hvilken som helst annen node i den gitte grafen.
Syklisk graf
En graf sies รฅ vรฆre syklisk hvis det er รฉn eller flere sykluser tilstede i grafen. Her er et eksempel pรฅ en syklisk graf:
Her danner hjรธrnene A, B og C en syklus. En graf kan ha flere sykluser inni seg.
Regissert syklisk graf (DAG)
En graf kalles en rettet asyklisk graf eller DAG hvis det ikke er noen sykluser inni grafen. DAG er viktig nรฅr man gjรธr Topologisk sortering eller finne utfรธrelsesrekkefรธlgen. DAG er ogsรฅ viktig for รฅ lage planleggingssystemer eller skanne avhengigheter av ressurser, osv. Grafen ovenfor inneholder imidlertid ingen syklus inni. Her er et enkelt eksempel pรฅ en rettet asyklisk graf (DAG):
Syklusgraf
En syklusgraf er ikke det samme som en syklisk graf. I en syklusgraf vil hver node ha nรธyaktig to kanter forbundet, noe som betyr at hver node vil ha nรธyaktig to grader. Her er et eksempel pรฅ en syklusgraf:
Todelt graf
Slike grafer er spesielle typer grafer der noder er tilordnet to sett. En todelt graf mรฅ fรธlge regelen:
- De to settene med hjรธrner skal vรฆre forskjellige, noe som betyr at alle hjรธrnene mรฅ deles inn i to grupper eller sett.
- Samme mengde hjรธrner skal ikke danne noen kanter.
Euler graf
En grafdatastruktur regnes som en Euler-graf hvis alle hjรธrnene har en partallsgrad. Begrepet graden av hjรธrner betyr antall kanter som peker mot eller ut fra et bestemt hjรธrne. Her er et eksempel pรฅ en Euler-graf:
Alle hjรธrnene har partallsgrader. Hjรธrnetoppene A, D, E og H har to grader. Her har node C fire grader, som er partallsgrader.
Hamilton-graf
En Hamilton-graf er en sammenhengende graf, hvor du kan besรธke alle hjรธrnene fra et gitt hjรธrne uten รฅ besรธke den samme noden eller bruke den samme kanten. Denne typen sammenhengende graf er kjent som ยซHamilton-grafenยป. Banen du besรธker for รฅ bekrefte om den gitte grafen er en Hamilton-graf eller ikke er kjent som Hamilton-banen. Her er et enkelt grafeksempel pรฅ en Hamilton:
I dette bildet kan vi besรธke alle toppunktene fra hvilken som helst node i grafen ovenfor. En av stiene kan vรฆre ADCHBEDet er ogsรฅ mulig รฅ finne en Hamilton-syklus. En Hamilton-syklus starter og slutter i samme hjรธrne. Sรฅ Hamilton-syklusen vil vรฆre ADCHBEA.


















