Grf-tetorkenteen toteutus Grfn toteutus? Perustp : krlst e f Tetorkenteet, syksy 7 Grf-tetorkenteen toteutus Perusopertoen työmäärä krlstss...: ovtko solmut u j v verekkäsä?: O(m) solmun lsäys: O() solmun posto: O(m) kren lsäys: O() kren posto: O() Nämä kvtvuuet kun sälöt kkssuunts lnktettyjä lstoj (sm oletus myös jtkoss) Tetorkenteet, syksy 7 Grf-tetorkenteen toteutus solmujoukko omss sälössä (sekvenss) krjoukko krlko-sälössä kusskn krlkoss vte sen lku- j loppusolmuun Krlstn tlvtmus: O(m + n) Perusopertoen työmäärä krlstss: kren päätesolmujen ku: O() solmuun v lttyneen kren selus: O(m) Tetorkenteet, syksy 7 Grf-tetorkenteen toteutus Perustp : verekkyyslst e f kun krlst, mutt lsäks kullkn solmulkoll vte omn krsälöön vtteet kyseseen solmuun tulevn j stä lätevn krn Tetorkenteet, syksy 7
Grf-tetorkenteen toteutus Grf-tetorkenteen toteutus e f erekkyyslstn tlvtmus: O(m + n) Perusopertoen työmäärä verekkyyslstss: kren päätesolmujen ku: O() solmuun v lttyneen kren selus: O(e(v)) solmut u j v verekkäsä?: O(mn{e(u),e(v)}) e f Perusopertoen työmäärä verekkyyslstss...: solmun lsäys: O() solmun v posto: O(e(v)) kren lsäys: O() kren posto: O() Tetorkenteet, syksy 7 Grf-tetorkenteen toteutus Perustp : verekkyysmtrs kun krlst, mutt lsäks n n mtrs A solmut numeron rvoll...n lko A[, j] ssältää vtteen solmust solmuun j kulkevn kreen A[,j] = null, jos e ole krt (,j) Tetorkenteet, syksy 7 7 Tetorkenteet, syksy 7 6 Grf-tetorkenteen toteutus e f erekkyysmtrsn tlvtvuus: O(n ) oletus: e rnnkks kr, jollon m = O(n ) Tetorkenteet, syksy 7 8
Grf-tetorkenteen toteutus erekkyysmtrsn perusopertoen työmäärä: kren päätesolmujen ku: O() solmuun v lttyneen kren selus: O(n) solmut u j v verekkäsä?: O() solmun lsäys: O(n ) solmun v posto: O(n ) kren lsäys: O() kren posto: O() Tetorkenteet, syksy 7 9 Leveyssuuntnen ku (Bret-Frst Ser, BFS) Leveyssuuntnen ku lken solmust s läetään levämään solmust s stettn n kuempn j kuempn olevn solmun solmun v tso: lyn polku (krten lukumäärä) kulun lkusolmust s solmuun v kerros : eetään tsoll olevst solmust tsoll + olevn solmun Tetorkenteet, syksy 7 Grfn kulkemnen (rp trversl) Grfn kulkemnen: käyään läp kkk rfn solmut j kret toteutus esm. smn tpn kun puuss leveyssuuntnen kulku (ku) syvyyssuuntnen kulku (ku) kulun lkusolmu s von vlt vpst vrt. puuss: lk juursolmust Tetorkenteet, syksy 7 Leveyssuuntnen ku (Bret-Frst Ser, BFS) Leveyssuuntnen ku lken solmust : Tetorkenteet, syksy 7
Leveyssuuntnen ku (Bret-Frst Ser, BFS) Leveyssuuntsess uss: pokkkret: kret, jotk jotvt jo emmn käytyn solmun (kuvss ktkovvll) löytökret: kret, jotk jotvt emmn käymättömn solmun muoostvt vrttävän puun Leveyssuuntnen ku (Bret-Frst Ser, BFS) BFS(s) luo uus sälö L, joss solmu s wle L e tyjä o luo tyjä sälö L + for jokselle v L o for jokselle solmun v krelle (v,u) o f kr (v, u) käymätön ten f solmu u käymätön ten merktse (v, u) löytökreks lsää u sälöön L + else merktse (v, u) pokkkreks + Akvtvuus? verekkyyslstll O(n + m) Tetorkenteet, syksy 7 Syvyyssuuntnen ku (Dept-Frst Ser, DFS) Syvyyssuuntnen ku lken solmust s eetään lkusolmust s lkv polkuj ykstellen nn ptkälle kun päästään nykysolmust v eetään, jos olemss sellnen kr (v,u), että u on yä käymätön jos nykysolmust e vo eetä, peruutetn skel kot solmu s, j yrtetään ts Tetorkenteet, syksy 7 Tetorkenteet, syksy 7 Syvyyssuuntnen ku (Dept-Frst Ser, DFS) Syvyyssuuntnen ku lken solmust : Tetorkenteet, syksy 7 6
Syvyyssuuntnen ku (Dept-Frst Ser, DFS) Syvyyssuuntsess uss: perääntymskret: kret, jotk jotvt jo emmn käytyn solmun (kuvss ktkovvll) löytökret: kret, jotk jotvt emmn käymättömn solmun muoostvt vrttävän puun Syvyyssuuntnen ku (Dept-Frst Ser, DFS) DFS(v) for jokselle solmun v krelle (v,u) o f kr (v, u) käymätön ten f solmu u käymätön ten merktse (v, u) löytökreks DFS(u) else merktse (v, u) perääntymskreks Akvtvuus? verekkyyslstll O(n + m) Tetorkenteet, syksy 7 7 Tetorkenteet, syksy 7 8 Syvyyssuuntnen ku (Dept-Frst Ser, DFS) Huomutus: BFS j DFS tuottvt vrttävän puun slle ystetylle komponentlle, joon s kuuluu Jos rf e ystetty: ku teään kusskn komponentss jos solmust s lknut ku päättyy, mutt jokn solmu u yä käymättä, jtketn lottmll uus ku solmust u lopputulos: löytökret muoostvt rfn vrttävän metsän kunkn komponentn vrttävät puut Tetorkenteet, syksy 7 9