Typer av grafer i datastruktur med exempel
โก Smart sammanfattning
Grafer i datastrukturer รคr icke-linjรคra samlingar av noder och kanter klassificerade i familjer sรฅsom riktade, oriktade, viktade, cykliska, acykliska, fullstรคndiga, sammanhรคngande, tvรฅdelade, Euler- och Hamilton-grafer baserat pรฅ struktur.

En graf รคr en icke-linjรคr datastruktur som bestรฅr av noder och kanter. Noderna innehรฅller informationen eller data, och kanterna fungerar som en lรคnk mellan ett par noder.
Grafer kan vara av flera typer, beroende pรฅ nodernas och kanternas position. Hรคr รคr nรฅgra viktiga typer av grafer:
Regisserad graf
Kanterna pรฅ den riktade grafen innehรฅller pilar som anger riktningen. Pilen anger var kanten pekar mot eller slutar. Hรคr รคr ett exempel pรฅ den riktade grafen.
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
En oriktad graf innehรฅller kanter utan pekare. Det betyder att vi kan rรถra oss tvรคrtom mellan tvรฅ noder. Hรคr รคr ett enkelt exempel pรฅ en oriktad graf.
Oriktad graf
I diagrammet ovan,
- Vi kan fรถrflytta oss frรฅn A till B.
- Vi kan ocksรฅ gรฅ frรฅn B till A.
- Kanter innehรฅller inga anvisningar.
Det รคr ett exempel pรฅ en oriktad graf med ett รคndligt antal noder och kanter utan vikter.
Viktad graf
En graf som innehรฅller vikter eller kostnader pรฅ kanterna kallas en viktad graf. Det numeriska vรคrdet representerar generellt den fรถrflyttande kostnaden frรฅn ett hรถrn till ett annat. Bรฅde riktade och oriktade grafer kan ha vikter pรฅ sina kanter. Hรคr รคr ett exempel pรฅ en viktad graf (riktad).
Riktad graf med vikt
- A till B, det finns en kant, och vikten รคr 5, vilket innebรคr att att flytta frรฅn A till B kommer att kosta oss 5.
- A pekar mot 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 gรฅ frรฅn A till F finns det flera vรคgar. Vรคgarna รคr ADF och ABF. ADF kostar (10+11) eller 21.
- Hรคr kommer vรคgen ABF att kosta (5+15) eller 20. Hรคr adderar vi vikten fรถr varje kant i vรคgen.
Hรคr รคr ett exempel pรฅ en oriktad graf med vikter:
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:
- Generellt kan en oriktad graf ha en kant mellan tvรฅ noder.
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:
Dubbelriktad graf
Att resa frรฅn A till D kostar oss 17, men att resa frรฅn D till A kostar 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 รคven รคr en sammanhรคngande graf, kommer den ocksรฅ att innehรฅlla ett oรคndligt antal kanter. Hรคr betyder de utรถkade kanterna att fler kanter kan vara sammankopplade med dessa noder via kanter. Hรคr รคr ett exempel pรฅ den oรคndliga grafen:
Oรคndlig graf
Null graf
En nollgraf innehรฅller endast noder eller noder men utan kanter. Om grafen G = (V, E) ges, dรคr V รคr noder 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
Trivial graf
En grafdatastruktur anses trivial om endast en nod eller nod finns utan kanter. Hรคr รคr ett exempel pรฅ en trivialgraf:
Multi Graph
En graf kallas en multigraf nรคr flera kanter finns mellan tvรฅ noder, eller nรคr noden har en loop. Termen "loop" i grafdatastruktur betyder en kant som pekar mot samma nod eller nod. En 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 hรถrn E en sjรคlvloop. Grafen ovan รคr en riktad graf utan vikter pรฅ kanterna.
Komplett graf
En graf รคr komplett om varje nodpunkt har riktade eller oriktade kanter med alla andra noder. Antag att det finns totalt V noder och varje nodpunkt har exakt V-1 kanter. Dรฅ kommer denna graf att kallas en komplett graf. I denna typ av graf รคr varje nodpunkt fรถrbunden med alla andra noder via kanter. Hรคr รคr ett exempel pรฅ en komplett graf med fem noder:
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 sammanhรคngande graf om vi bรถrjar frรฅn en nod eller ett hรถrn och kan fรคrdas till 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 sammanhรคngande graf:
Hรคr รคr en fรถrklaring av ovanstรฅende sammanhรคngande graf:
- Om vi โโantar att det inte finns nรฅgon kant mellan C och F, kan vi inte fรคrdas frรฅn A till G. Kanten C till F gรถr det dock mรถjligt fรถr oss att fรคrdas 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 punkterna A, B och C en cykel. En graf kan ha flera cykler inuti sig.
Regisserad acyklisk graf (DAG)
En graf kallas en riktad acyklisk graf eller DAG om det inte finns nรฅgra cykler inuti grafen. DAG รคr viktig nรคr man utfรถr Topologisk sortering eller hitta exekveringsordningen. DAG รคr ocksรฅ viktigt fรถr att skapa schemalรคggningssystem eller skanna beroenden av resurser, etc. Grafen ovan innehรฅller dock ingen cykel inuti. Hรคr รคr ett enkelt exempel pรฅ en riktad acyklisk graf (DAG):
Cykeldiagram
En cykelgraf รคr inte samma sak som en cyklisk graf. I en cykelgraf har varje nod exakt tvรฅ sammankopplade kanter, vilket innebรคr att varje nod har exakt tvรฅ grader. Hรคr รคr ett exempel pรฅ en cykelgraf:
Bipartitgraf
Dessa typer av Grafer รคr speciella typer av grafer dรคr noder tilldelas tvรฅ mรคngder. En tvรฅdelad graf mรฅste fรถlja regeln:
- De tvรฅ uppsรคttningarna av noder ska vara distinkta, vilket innebรคr att alla noder mรฅste delas in i tvรฅ grupper eller uppsรคttningar.
- Samma mรคngd noder bรถr inte bilda nรฅgra kanter.
Euler graf
En grafdatastruktur betraktas som en Eulergraf om alla noder har en jรคmn grad. Termen grad av noder avser antalet kanter som pekar mot eller ut frรฅn ett visst nodpunkt. Hรคr รคr ett exempel pรฅ en Eulergraf:
Alla noder har jรคmna grader. Noderna A, D, E och H har tvรฅ grader. Hรคr har nod C fyra grader, vilket รคr jรคmnt.
Hamilton graf
En Hamiltongraf รคr en sammanhรคngande graf, dรคr du kan besรถka alla noder frรฅn ett givet nodpunkt utan att รฅtervรคnda till samma nod eller anvรคnda samma kant. Denna typ av sammanhรคngande graf kallas "Hamiltongrafen". Den vรคg du besรถker fรถr att verifiera om den givna grafen รคr en Hamiltongraf eller inte kallas Hamiltonbanan. 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 ADCHBEDet รคr ocksรฅ mรถjligt att hitta en Hamiltoncykel. En Hamiltoncykel bรถrjar och slutar vid samma hรถrn. Sรฅ Hamiltoncykeln kommer att vara ADCHBEA.


















