Typer av grafer i datastruktur med exempel

Typer av grafer i datastruktur

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.

Regisserad graf
Regisserad graf
  • 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.

Oriktad graf
Oriktad graf

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).

Regisserad graf med vikt
Riktad graf med vikt
  • 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:

Oriktad graf med vikt
Oriktad graf med vikt

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:

Dubbelriktad graf

  • 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:

Dubbelriktad graf
Dubbelriktad graf

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:

Oรคndlig graf
Oรคndlig graf

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:

Null graf
Null graf

Trivial graf

En grafdatastruktur anses trivial om endast en vertex eller nod finns utan kanter.

Hรคr รคr ett exempel pรฅ en trivial graf:

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:

Multi Graph

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:

Komplett graf

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:

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:

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):

Regisserad 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:

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.

Bipartitgraf

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:

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:

Hamilton graf

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.

Sammanfatta detta inlรคgg med: