U računarstvu je graf vrsta podatkovne strukture kojom se implementira matematički koncept grafa.
Graf se uglavnom sastoji od konačnog (moguće i promjenjivog) skupa uređenih parova koji se nazivaju rubovi ili lukovi (eng. edge), ili od entiteta koji se zovu čvorovi. Kao i u matematici, rub je definiran polaznom i krajnjom točkom, pa kažemo da "pokazuje" ili "ide" od x do y. Čvorovi mogu biti dio strukture grafa ili mogu biti vanjski entiteti predstavljeni pomoću cjelobrojnih indeksa ili referenci.
Osnovne operacije koje omogućava graf G uključuju
adjacent
(G, x,y): provjerava postoji li rub od x do y.neighbors
(G, x): izlistava sve čvorove y za koje postoji rub od x do y.add
(G, x,y): dodaje rub od x do y, ako ne postojidelete
(G, x,y): briše rub od x do y, ako postoji
Strukture koje povezuju vrijednosti za rubove su:
get_value
(G, x,y): vraća vrijednost vezana za rub (x,y).set_value
(G, x,y,v): postavlja vrijednost vezanu za rub (x,y) u v.
Dvije su glavne strukture za reprezentaciju grafova koje se koriste u praksi.
Prva se naziva lista susjedstava (en:adjacency list) i implementira se kao niz s jednom vezanom listom za svaki izvorni čvor, a sadrži destinacijske čvorove rubova koji izlaze iz svakog čvora. Drugi je dvodimenzionalna Booleova matrica susjedstava, koja pokazuje postoji li rub između svakog pojedinog para čvorova. Liste susjedstava su bolji izbor za rijetke (sparse) grafove, dok su za guste grafove (en:dense graphs) bolji izbor matrice susjedstava.
Za grafove koji pokazuju neku pravilnost u položaju rubova, simbolički su grafovi također dobar izbor.
Wikiwand in your browser!
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.