Typer av grafer i datastruktur med exempel

En graf รคr en icke-linjรคr datastruktur som bestรฅr av hรถrn och kanter. Topparna innehรฅller informationen eller data, och kanterna fungerar som en lรคnk mellan par av hรถrn.
Grafer kan vara av flera typer, beroende pรฅ positionen fรถr noderna och kanterna. Hรคr รคr nรฅgra viktiga typer av grafer:
Regisserad graf
Kanterna pรฅ den riktade grafen innehรฅller pilar som betyder riktningen. Pilen bestรคmmer var kanten pekar mot eller slutar.
Hรคr รคr ett exempel pรฅ den riktade grafen.

- Vi kan gรฅ frรฅn nod A till D.
- Vi kan dock inte gรฅ frรฅn nod D till nod A eftersom kanten pekar frรฅn A till D.
- Eftersom grafen inte har vikter kommer det att kosta samma sak att resa frรฅn vertex A till D som att resa frรฅn D till F.
Oriktad graf
Oriktad graf innehรฅller kanter utan pekare. Det betyder att vi kan resa vice versa mellan tvรฅ hรถrn.
Hรคr รคr ett enkelt exempel pรฅ den oriktade grafen.

I diagrammet ovan,
- Vi kan gรฅ frรฅn A till B
- Vi kan ocksรฅ flytta frรฅn B till A
- Kanter innehรฅller inga anvisningar.
Det รคr ett exempel pรฅ en oriktad graf som har ett รคndligt antal hรถrn och kanter utan vikter.
Viktad graf
Graf som innehรฅller vikter eller kostnader pรฅ kanterna kallas en viktad graf. Det numeriska vรคrdet representerar i allmรคnhet fรถrflyttningskostnaden frรฅn en vertex till en annan vertex. Bรฅde riktad och oriktad graf kan ha vikter pรฅ sina kanter.
Hรคr รคr ett exempel pรฅ en viktad graf (riktad).

- A till B, det finns en kant, och vikten รคr 5, vilket betyder att flytta frรฅn A till B kommer att kosta oss 5.
- A punkt till B, men i den hรคr grafen har B ingen direkt kant รถver A. Sรฅ vi kan inte resa frรฅn B till A.
- Men om vi vill flytta frรฅn A till F finns det flera vรคgar. Banorna รคr ADF, ABF. ADF kommer att kosta (10+11) eller 21.
- Hรคr kommer banan ABF att kosta (5+15) eller 20. Hรคr lรคgger vi till vikten av varje kant i banan.
Hรคr รคr ett exempel pรฅ en oriktad graf med vikter:

Hรคr har kanten vikt men ingen riktning. Sรฅ det betyder att resa frรฅn vertex A till D kommer att kosta 10 och vice versa.
Dubbelriktad graf
Dubbelriktade och oriktade grafer har en gemensam egenskap. Det รคr
- I allmรคnhet kan den oriktade grafen ha en kant mellan tvรฅ hรถrn.
Till exempel:
- Hรคr kommer det att kosta 10 att flytta frรฅn A till D eller D till A.
- I en dubbelriktad graf kan vi ha tvรฅ kanter mellan tvรฅ hรถrn.
Hรคr รคr ett exempel:

Att resa frรฅn A till D kommer att kosta oss 17, men att resa frรฅn D till A kommer att kosta oss 12. Sรฅ vi kan inte tilldela tvรฅ olika vikter om det รคr en oriktad graf.
Oรคndlig graf
Grafen kommer att innehรฅlla ett oรคndligt antal kanter och noder. Om en graf รคr oรคndlig och den ocksรฅ รคr en sammankopplad graf, kommer den ocksรฅ att innehรฅlla ett oรคndligt antal kanter. Hรคr innebรคr de fรถrlรคngda kanterna att fler kanter kan vara anslutna till dessa noder via kanter.
Hรคr รคr ett exempel pรฅ den oรคndliga grafen:

Null graf
Null Graph innehรฅller bara noder eller hรถrn men utan kanter. Om det ges en graf G = (V, E), dรคr V รคr hรถrn och E รคr kanter, kommer den att vara noll om antalet kanter E รคr noll.
Hรคr รคr ett exempel pรฅ en nollgraf:

Trivial graf
En grafdatastruktur anses trivial om endast en vertex eller nod finns utan kanter.
Hรคr รคr ett exempel pรฅ en trivial graf:
Multi Graph
En graf kallas en multigraf nรคr flera kanter finns mellan tvรฅ hรถrn, eller nรคr hรถrnet har en slinga. Termen "loop" i Graph Data Structure betyder en kant som pekar mot samma nod eller vertex. Multigraf kan vara riktad eller oriktad.
Hรคr รคr ett exempel pรฅ en multigraf:
Det finns tvรฅ kanter frรฅn B till A. Dessutom har vertex E en sjรคlvslinga. Ovanstรฅende graf รคr en riktad graf utan vikter pรฅ kanter.
Komplett graf
En graf รคr komplett om varje vertex har riktade eller oriktade kanter med alla andra hรถrn.
Anta att det finns ett totalt V antal hรถrn och varje vertex har exakt V-1 kanter. Dรฅ kommer denna graf att kallas en komplett graf. I denna typ av graf รคr varje vertex ansluten till alla andra hรถrn via kanter.
Hรคr รคr ett exempel pรฅ en komplett graf med fem hรถrn:
Du kan se pรฅ bilden att det totala antalet noder รคr fem, och alla noder har exakt fyra kanter.
Ansluten graf
En graf kallas en sammankopplad graf om vi utgรฅr frรฅn en nod eller vertex och reser alla noder frรฅn startnoden. Fรถr detta bรถr det finnas minst en kant mellan varje par av noder eller hรถrn.
Hรคr รคr ett exempel pรฅ en ansluten graf:
Hรคr รคr en fรถrklaring av ovanstรฅende "fullstรคndiga grafexempel"-graf:
- Om vi โโantar att det inte finns nรฅgon kant mellan C och F, kan vi inte resa frรฅn A till G. Men kanten C till F gรถr att vi kan resa till vilken nod som helst frรฅn en given nod.
- En komplett graf รคr en sammankopplad graf eftersom vi kan flytta frรฅn en nod till vilken annan nod som helst i den givna grafen.
Cyklisk graf
En graf sรคgs vara cyklisk om det finns en eller flera cykler i grafen.
Hรคr รคr ett exempel pรฅ en cyklisk graf:
Hรคr bildar hรถrn A, B och C en cykel.
En graf kan ha flera cykler inuti den.
Regisserad acyklisk graf (DAG)
En graf kallas riktad acyklisk graf eller DAG om det inte finns nรฅgra cykler i en graf. DAG รคr viktigt nรคr du gรถr Topologisk sortering eller hitta exekutionsordern. DAG รคr ocksรฅ viktigt fรถr att skapa schemalรคggningssystem eller skanningsberoende av resurser etc. Ovanstรฅende graf innehรฅller dock ingen cykel inuti.
Hรคr รคr ett enkelt exempel pรฅ en riktad acyklisk graf (DAG):
Cykeldiagram
Cycle Graph รคr inte detsamma som den cykliska grafen. I Cycle Graph kommer varje nod att ha exakt tvรฅ kanter anslutna, vilket betyder att varje nod har exakt tvรฅ grader.
Hรคr รคr ett exempel pรฅ en cykeldiagram:
Bipartitgraf
Dessa typer av Grafer รคr speciella typer av grafer dรคr hรถrn tilldelas tvรฅ uppsรคttningar.
Bipartite Graph mรฅste fรถlja regeln:
- Tvรฅ uppsรคttningar av hรถrn bรถr vara distinkta, vilket innebรคr att alla hรถrn mรฅste delas upp i tvรฅ grupper eller uppsรคttningar.
- Samma uppsรคttning Vertices bรถr inte bilda nรฅgra kanter.
Euler graf
Grafdatastrukturer anses vara en Euler-graf om alla hรถrn har en jรคmnt numrerad grad. Termen grad av hรถrn betyder antalet kanter som pekar mot eller pekar ut frรฅn en viss vertex.
Hรคr รคr ett exempel pรฅ en Euler-graf:
Alla hรถrn har jรคmna grader. Vertex A, D, E och H har tvรฅ grader. Hรคr har nod C fyra grader, vilket รคr jรคmnt.
Hamilton graf
Hamilton Graph รคr en Connect Graph, dรคr du kan besรถka alla hรถrn frรฅn en given vertex utan att gรฅ tillbaka till samma nod eller anvรคnda samma kant. Denna typ av ansluten graf รคr kรคnd som "Hamilton-grafen". Sรถkvรคgen du besรถker fรถr att verifiera om den givna grafen รคr Hamilton-graf eller inte รคr kรคnd som Hamiltonsk vรคg.
Hรคr รคr ett enkelt grafexempel pรฅ en Hamilton:
I den hรคr bilden kan vi besรถka alla hรถrn frรฅn vilken nod som helst i ovanstรฅende graf. En av vรคgarna kan vara ADCHBE. Det รคr ocksรฅ mรถjligt att hitta en Hamilton Cycle. Hamilton-cykeln bรถrjar och slutar vid samma vertex. Sรฅ kommer Hamilton-cykeln att vara ADCHBEA.











