Az informatikában , különösen a szoftverfejlesztésben , az absztrakt típusú grafikon a specifikáció formális adatai, amelyek meghatározzák az objektum matematikai grafikonját és a velük végrehajtható műveletek halmazát. Ezt az adattípust azért hívják „absztraktnak”, mert megfelel annak a specifikációnak, amelyet egy konkrét adatstruktúrának végre kell hajtania .
Az absztrakt adatszerkezet grafikon áll egy sor kész, adott esetben változékony a csúcsok vagy csomópontok vagy tételek , egy sor rendezett párok, vagy sem az ilyen elemek Ezek párok élek , nem-orientált ívek vagy vonalak egy irányítatlan gráf, és a nyilak , orientált élek , ívek vagy orientált vonalak orientált esetben. A csúcspontok lehetnek a szerkezet részei, vagy lehetnek külső entitások, amelyeket egész számok vagy hivatkozások képviselnek .
A grafikonszerkezet minden élhez társíthat egy "értéket", például címkét vagy numerikus értéket (költség, kapacitás, hossz stb.). Általánosabban: a grafikon két objektumkészlettel is megadható, az egyik csúcs és az élek halmaza, amelyek két leképezéssel vannak ellátva, amelyek minden élhez társítják kezdő csúcsát és érkezési csúcsát. Ez a látomás lehetővé teszi az értékek társítását minden objektumhoz (csúcs vagy él).
A G grafikon adatstruktúra által biztosított alapvető műveletek általában a következőket tartalmazzák:
Az élekkel értékeket társító struktúrák általában a következő műveleteket hajtják végre:
Különböző adatstruktúrákat használnak a gyakorlatban a grafikonok ábrázolásához:
Adjacency lista A csúcspontok objektumokként vagy rekordokként vannak ábrázolva, és minden csúcshoz tartozik a szomszédos csúcsok társított listája . Ez a struktúra lehetővé teszi további adatok megőrzését a csúcsok számára. Az élekkel kapcsolatos további információk tárolhatók az objektumokban, ha az éleket objektumok képviselik. Ebben az esetben minden csúcs tartalmazhatja a szomszédos éleket és minden él a beeső csúcsait. Adjacencia mátrix Ez egy négyzetmátrix , ahol a sorok a kezdő csúcsokat, az oszlopok pedig a befejező csúcsokat képviselik. A bejegyzés kijelöli az ív jelenlétét, vagy lehet ívértéke. Irányítatlan gráfok esetén a mátrix szimmetrikus. Incidencia mátrix Ez egy mátrix , ahol a vonalak a csúcsokat, az oszlopok pedig az éleket képviselik. Egy bejegyzés jelzi, hogy az él beesik-e a tetején . Pontosabban : Oszloponként csak két nem nulla érték van (és hurok esetén csak egy).Az alábbi táblázat bemutatja a grafikonokon megjelenő különféle műveletek időbeli összetettségét az ábrázolásoknak megfelelően. Itt van a csúcsok és az élek száma.
Adjacency lista | Adjacencia mátrix | Incidencia mátrix | |
---|---|---|---|
Készítse el a grafikont | |||
Adjon hozzá egy csúcsot | |||
Adjon hozzá egy élt | |||
Távolítson el egy csúcsot | |||
Töröljön egy élt | |||
Adjacencia teszt két csúcs között | |||
Megjegyzések | Lassan halad a törlés, mert meg kell találni a csúcsokat vagy éleket | Lassan hozzáadja vagy eltávolítja a csúcsokat, mert a mátrixot újra kell formázni | Lassan hozzáadja vagy eltávolítja a csúcsokat vagy éleket, mert a mátrixot újra kell formázni |
A szomszédsági listák általában előnyösek a ritka grafikonok esetében . Éppen ellenkezőleg, egy szomszédsági mátrix előnyösebb, ha a gráf sűrű, vagyis amikor az élek száma | E | közel van a csúcsok számának négyzetéhez V | 2 , hanem akkor is, ha meg akarjuk tudni, hogyan lehet gyorsan tesztelni egy él létezését két csúcs között.