Graafityypit tietorakenteessa esimerkkien kanssa

Kuvaajien tyypit tietorakenteessa

Graafi on epälineaarinen tietorakenne, joka koostuu pisteistä ja reunoista. Huippupisteet sisältävät tietoa tai dataa, ja reunat toimivat linkkinä kärkiparien välillä.

Graafit voivat olla monen tyyppisiä solmujen ja reunojen sijainnista riippuen. Tässä on joitain tärkeitä kaaviotyyppejä:

Ohjattu graafi

Suunnatun kuvaajan reunat sisältävät suuntaa osoittavia nuolia. Nuoli määrittää, mihin reuna osoittaa tai mihin se päättyy.

Tässä on esimerkki ohjatusta kaaviosta.

Ohjattu graafi
Ohjattu graafi
  • Voimme siirtyä solmusta A paikkaan D.
  • Emme kuitenkaan voi siirtyä solmusta D solmuun A, koska reuna osoittaa A:sta D:hen.
  • Koska kaaviossa ei ole painoja, matkustaminen kärjestä A paikkaan D maksaa saman verran kuin matkustaminen pisteestä D paikkaan F.

Ohjaamaton kaavio

Suuntaamaton kuvaaja sisältää reunat ilman osoittimia. Se tarkoittaa, että voimme matkustaa päinvastoin kahden kärjen välillä.

Tässä on yksinkertainen esimerkki ohjaamattomasta kuvaajasta.

Ohjaamaton kaavio
Ohjaamaton kaavio

Yllä olevassa kaaviossa

  • Voimme siirtyä paikasta A paikkaan B
  • Voimme myös siirtyä paikasta B paikkaan A
  • Reunat eivät sisällä ohjeita.

Se on esimerkki suuntaamattomasta graafista, jossa on äärellinen määrä pisteitä ja reunoja ilman painoja.

Painotettu kaavio

Graafia, joka sisältää painot tai kustannukset reunoilla, kutsutaan painotetuksi kuvaajaksi. Numeerinen arvo edustaa yleensä siirtokustannuksia kärjestä toiseen. Sekä suunnatun että ohjaamattoman graafin reunoilla voi olla painotuksia.

Tässä on esimerkki painotetusta kaaviosta (ohjattu).

Ohjattu kaavio painolla
Suunnattu graafi painolla
  • A paikkaan B, siellä on reuna ja paino on 5, mikä tarkoittaa, että siirtyminen paikasta A paikkaan B maksaa meille 5.
  • Piste B:hen, mutta tässä kaaviossa B:llä ei ole suoraa reunaa A:hen nähden. Emme siis voi matkustaa paikasta B paikkaan A.
  • Kuitenkin, jos haluamme siirtyä paikasta A paikkaan F, polkuja on useita. Polut ovat ADF, ABF. ADF maksaa (10+11) tai 21.
  • Tässä polku ABF maksaa (5+15) tai 20. Tähän lisätään polun jokaisen reunan paino.

Tässä on esimerkki ohjaamattomasta kaaviosta painojen kanssa:

Ohjaamaton kaavio painolla
Ohjaamaton kaavio painolla

Tässä reunalla on painoa, mutta ei suuntaa. Joten se tarkoittaa, että matka pisteestä A paikkaan D maksaa 10 ja päinvastoin.

Kaksisuuntainen kaavio

Kaksisuuntaisilla ja suuntaamattomilla kaavioilla on yhteinen ominaisuus. Tuo on

  • Yleensä suuntaamattomalla kuvaajalla voi olla yksi reuna kahden kärjen välillä.

Esimerkiksi:

Kaksisuuntainen kaavio

  • Täällä siirtyminen paikasta A paikkaan D tai D paikkaan A maksaa 10.
  • Kaksisuuntaisessa kuvaajassa voi olla kaksi reunaa kahden kärjen välillä.

Tässä esimerkki:

Kaksisuuntainen kaavio
Kaksisuuntainen kaavio

Matka paikasta A paikkaan D maksaa meille 17, mutta matka paikasta D paikkaan A maksaa 12. Joten emme voi antaa kahta eri painoa, jos se on suuntaamaton graafi.

Ääretön kaavio

Graafi sisältää äärettömän määrän reunoja ja solmuja. Jos graafi on ääretön ja se on myös yhdistetty graafi, se sisältää myös äärettömän määrän reunoja. Tässä laajennetut reunat tarkoittavat, että näihin solmuihin voidaan liittää useampia reunoja reunojen kautta.

Tässä on esimerkki äärettömästä graafista:

Ääretön kaavio
Ääretön kaavio

Nollakuvaaja

Null Graph sisältää vain solmut tai kärjet, mutta ei reunoja. Jos annetaan Graafi G = (V, E), jossa V on pisteet ja E on reunat, se on nolla, jos reunojen määrä E on nolla.

Tässä on esimerkki nollakaaviosta:

Nollakuvaaja
Nollakuvaaja

Triviaali kaavio

Graafin tietorakennetta pidetään triviaalina, jos vain yksi kärki tai solmu on läsnä ilman reunoja.

Tässä on esimerkki triviaalikaaviosta:

Triviaali kaavio

Monikuvaaja

Graafia kutsutaan multigrafiksi, kun kahden kärjen välillä on useita reunoja tai kärjessä on silmukka. Termi "silmukka" kuvaajatietorakenteessa tarkoittaa reunaa, joka osoittaa samaan solmuun tai kärkeen. Multigrafi voi olla suunnattu tai suuntaamaton.

Tässä on esimerkki monikaaviosta:

Monikuvaaja

B:stä A:han on kaksi reunaa. Lisäksi kärjessä E on omasilmukka. Yllä oleva Graafi on suunnattu graafi, jossa ei ole painoja reunoilla.

Täydellinen kaavio

Graafi on valmis, jos jokaisella kärjellä on suunnatut tai suuntaamattomat reunat kaikkien muiden kärkien kanssa.

Oletetaan, että pisteitä on yhteensä V ja jokaisella kärjellä on täsmälleen V-1 reunat. Sitten tätä kuvaajaa kutsutaan täydelliseksi kuvaajaksi. Tämän tyyppisessä kuvaajassa jokainen kärkipiste on yhdistetty kaikkiin muihin kärkikohtiin reunojen kautta.

Tässä on esimerkki täydellisestä kaaviosta, jossa on viisi kärkeä:

Täydellinen kaavio

Kuvasta näkyy, että solmujen kokonaismäärä on viisi ja kaikilla solmuilla on täsmälleen neljä reunaa.

Yhdistetty kaavio

Graafia kutsutaan yhdistetyksi graafiksi, jos aloitamme solmusta tai kärjestä ja kuljetamme kaikki solmut aloitussolmusta. Tätä varten jokaisen solmu- tai kärkiparin välillä tulee olla vähintään yksi reuna.

Tässä on esimerkki yhdistetystä kaaviosta:

Yhdistetty kaavio

Tässä on selitys yllä olevasta "täydellinen kaavioesimerkki" -kaaviosta:

  • Olettaen, että C:n ja F:n välillä ei ole reunaa, emme voi matkustaa paikasta A paikkaan G. Reunan C ja F avulla voimme kuitenkin matkustaa mihin tahansa solmuun tietystä solmusta.
  • Täydellinen Graafi on Yhdistetty Graafi, koska voimme siirtyä solmusta mihin tahansa toiseen solmuun annetussa kaaviossa.

Syklinen kaavio

Kuvaajan sanotaan olevan syklinen, jos kaaviossa on yksi tai useampi jakso.

Tässä on esimerkki syklisestä kaaviosta:

Syklinen kaavio

Tässä kärkipisteet A, B ja C muodostavat syklin.

Graafissa voi olla useita syklejä.

Suunnattu asyklinen kaavio (DAG)

Graafia kutsutaan suunnatuksi asykliseksi kuvaajaksi tai DAG:ksi, jos kaaviossa ei ole jaksoja. DAG on tärkeä tehtäessä Topologinen lajittelu tai täytäntöönpanomääräyksen löytäminen. DAG on myös tärkeä luotaessa ajoitusjärjestelmiä tai skannattaessa resurssiriippuvuutta jne. Yllä oleva kaavio ei kuitenkaan sisällä mitään sykliä.

Tässä on yksinkertainen esimerkki suunnatusta asyklisestä kuvaajasta (DAG):

Suunnattu asyklinen kaavio (DAG)

Kiertokaavio

Cycle Graph ei ole sama kuin syklinen kuvaaja. Cycle Graphissa jokaisessa solmussa on täsmälleen kaksi reunaa yhdistettynä, mikä tarkoittaa, että jokaisella solmulla on täsmälleen kaksi astetta.

Tässä on esimerkki syklikaaviosta:

Kiertokaavio

Kahdenvälinen kaavio

Tällaiset Kuvaajat ovat erityisiä Graph-tyyppejä, joissa pisteet on määritetty kahdelle joukolle.

Kaksiosaisen kaavion on noudatettava sääntöä:

  • Kahden kärkijoukon tulee olla erillisiä, mikä tarkoittaa, että kaikki pisteet on jaettava kahteen ryhmään tai joukkoon.
  • Sama joukko Vertices ei saa muodostaa reunoja.

Kahdenvälinen kaavio

Euler-kaavio

Graafisten tietorakenteiden katsotaan olevan Euler-graafit, jos kaikilla pisteillä on parillinen aste. Termi kärkipisteiden aste tarkoittaa tiettyyn kärkeen osoittavien tai siitä osoittavien reunojen määrää.

Tässä on esimerkki Euler-kaaviosta:

Euler-kaavio

Kaikilla huippupisteillä on parilliset asteet. Pisteillä A, D, E ja H on kaksi astetta. Tässä solmulla C on neljä astetta, mikä on parillinen.

Hamiltonin kaavio

Hamilton Graph on Connect Graph, jossa voit vierailla tietyn kärjen kaikissa pisteissä käymättä uudelleen samassa solmussa tai käyttämättä samaa reunaa. Tällainen yhdistetty kaavio tunnetaan nimellä "Hamilton Graph". Polku, jolla käyt varmistaaksesi, onko annettu kuvaaja Hamiltonin kuvaaja, tunnetaan nimellä Hamiltonin polku.

Tässä on yksinkertainen kaavioesimerkki Hamiltonista:

Hamiltonin kaavio

Tässä kuvassa voimme vierailla kaikissa yllä olevan kaavion solmupisteissä. Yksi poluista voi olla ADCHBE. On myös mahdollista löytää Hamilton Cycle. Hamiltonin sykli alkaa ja päättyy samaan kärkeen. Joten, Hamiltonin sykli tulee olemaan ADCHBEA.