15
Overviev Stražar u crveno-crnom stablu Ubacivanje ˇ cvora Brisanje ˇ cvora Crveno-crna stabla – Definisali su ih Gibs i Sedžvik 1978. godine; Crveno-crna stabla su binarna stabla, kod kojih je za skladištenje svakog ˇ cvora potreban još jedan bit: njegova boja koja može biti crvena ili crna. Vode´ ci raˇ cuna o boji ˇ cvorova na putu od korena do bilo kog lista, u crveno-crnom stablu mora biti ispunjen uslov da je taj put najviše dva puta duži od bilo kog drugog. To znaˇ ci da su ova stabla na neki naˇ cin izbalansirana. Svaki ˇ cvor ima pet atributa: color, key, left, right, p.

Definisali su ih Gibs i Sedžvik 1978. godine; Crveno-crna ...nasport.pmf.ni.ac.rs/materijali/486/CRVENO-CRNA STABLA.pdf · Procedura ubacivanja cvora u crveno-crno stablo saˇ n

  • Upload
    dodat

  • View
    244

  • Download
    5

Embed Size (px)

Citation preview

Page 1: Definisali su ih Gibs i Sedžvik 1978. godine; Crveno-crna ...nasport.pmf.ni.ac.rs/materijali/486/CRVENO-CRNA STABLA.pdf · Procedura ubacivanja cvora u crveno-crno stablo saˇ n

OvervievStražar u crveno-crnom stabluUbacivanje cvoraBrisanje cvora

Crveno-crna stabla

– Definisali su ih Gibs i Sedžvik 1978. godine;

Crveno-crna stabla su binarna stabla, kod kojih je zaskladištenje svakog cvora potreban još jedan bit:

njegova boja koja može biti crvena ili crna.

Vodeci racuna o boji cvorova na putu od korena do bilo koglista, u crveno-crnom stablu mora biti ispunjen uslov da je tajput najviše dva puta duži od bilo kog drugog.

To znaci da su ova stabla na neki nacin izbalansirana.

Svaki cvor ima pet atributa:

– color, key, left, right, p.

Page 2: Definisali su ih Gibs i Sedžvik 1978. godine; Crveno-crna ...nasport.pmf.ni.ac.rs/materijali/486/CRVENO-CRNA STABLA.pdf · Procedura ubacivanja cvora u crveno-crno stablo saˇ n

OvervievStražar u crveno-crnom stabluUbacivanje cvoraBrisanje cvora

Crveno-crna stabla (cont.)

Ako neki cvor nema roditelja ili dete pokazivac na njih je NIL.

Pretpostavicemo da NIL pokazivaci ukazuju i na listove stabla,dok je svaki cvor koji ima neki sadržaj unutrašnji cvor stabla.

Crveno-crno stablo se karakteriše sledecim osobinama:

Page 3: Definisali su ih Gibs i Sedžvik 1978. godine; Crveno-crna ...nasport.pmf.ni.ac.rs/materijali/486/CRVENO-CRNA STABLA.pdf · Procedura ubacivanja cvora u crveno-crno stablo saˇ n

OvervievStražar u crveno-crnom stabluUbacivanje cvoraBrisanje cvora

Crveno-crna stabla (cont.)

Svaki cvor u stablu je ili crven ili crn;

Koren je crn;

Svaki list (NIL) je crn;

Akoje cvor crven oba deteta su mu crna;

Putevi od svakog lista do korena imaju isti broj crnihcvorova;

Crveno-crna stabla se pretražuju od korena do mesta na kometreba da se nalazi element koji se ubacuje ili izbacuje, a zatimse vraca prema korenu i uspostavlja se crveno-crna strukturaukoliko je narušena.

Page 4: Definisali su ih Gibs i Sedžvik 1978. godine; Crveno-crna ...nasport.pmf.ni.ac.rs/materijali/486/CRVENO-CRNA STABLA.pdf · Procedura ubacivanja cvora u crveno-crno stablo saˇ n

OvervievStražar u crveno-crnom stabluUbacivanje cvoraBrisanje cvora

Crveno-crna stabla (cont.)

Teorema:Visina crveno-crnog stabla koje ima n cvorova jeste najviše2 log2 (n + 1).

Dokaz cemo izvesti indukcijom po visini cvora x. Odredicemonajpre crnu visinu stabla sa korenom u x, koju cemo oznaciti sabh(x). To je broj crnih cvorova od korena stabla do lista, neracunajuci koren. Indukcijom se lako dokazuje da stablo crnevisine bh(x), sa korenom u proizvoljnom cvoru x ima najmanje2bh(x)

− 1 cvorova.

Ako je bh(x) = 0, jasno je da je x list (T.NIL) i podstablo sakorenom u x sadrži 2bh(x)

− 1 = 20− 1 = 1 − 1 = 0 cvorova,

ako izuzmemo x.

Page 5: Definisali su ih Gibs i Sedžvik 1978. godine; Crveno-crna ...nasport.pmf.ni.ac.rs/materijali/486/CRVENO-CRNA STABLA.pdf · Procedura ubacivanja cvora u crveno-crno stablo saˇ n

OvervievStražar u crveno-crnom stabluUbacivanje cvoraBrisanje cvora

Crveno-crna stabla (cont.)

Za induktivni korak pretpostavimo da je x unutrašnji cvor stablasa dvoje dece. Svako dete ima crnu visinu bh(x) ili bh(x) − 1,zavisno od toga dali je crveno ili crno, redom. Kako je visinasvakog deteta od x manja od visine cvora x, možemo primenitiindukcijsku pretpostavku, pa svako dete odredjuje podstablo sanajmanje 2bh(x)−1

− 1 cvorova.

Dakle, podstablo sa korenom u x ima najmanje2(2bh(x)−1

− 1) + 1 = 2bh(x)− 1 cvorova.

Da bi upotpunili dokaz, pretpostavimo da stablo sa korenom xima visinu h. Prema osobinama crveno-crnog stabla barpolovina cvorova na putu od korena do lista je crna, pa jebh(x) >

h2 . Tada je broj cvorova u stablu

n > 2h2 −1

⇔ h 6 2 log2 (n + 1)

Page 6: Definisali su ih Gibs i Sedžvik 1978. godine; Crveno-crna ...nasport.pmf.ni.ac.rs/materijali/486/CRVENO-CRNA STABLA.pdf · Procedura ubacivanja cvora u crveno-crno stablo saˇ n

OvervievStražar u crveno-crnom stabluUbacivanje cvoraBrisanje cvora

Stražar (sentinel) u crveno-crnom stablu

Da bi pojednostavili granicne uslove u crveno-crnom stablumožemo koristiti jednog stražara koji predstavlja NIL.

U crveno-crnom stablu stražar T.NIL je objekat sa istimatributima kao obican cvor u stablu. Njegova boja je crna, dokostali atributi- p, left, right i key- mogu uzeti proizvoljnevrednosti.

Page 7: Definisali su ih Gibs i Sedžvik 1978. godine; Crveno-crna ...nasport.pmf.ni.ac.rs/materijali/486/CRVENO-CRNA STABLA.pdf · Procedura ubacivanja cvora u crveno-crno stablo saˇ n

OvervievStražar u crveno-crnom stabluUbacivanje cvoraBrisanje cvora

Stražar u crveno-crnom stablu (cont.)

Svi pokazivaci na listove, zamenjuju se pokazivacem nasentinel T.NIL.

Kao što se vidi, kada koristimo stražara, NIL dete cvora xmožemo smatrati obicnim detetom ciji je roditelj x. T.NIL uovom slucaju se koristi i kao roditelj korena stabla.

U opštem slucaju, u radu sa crveno-crnim stablima, nama suvažniji unutrašnji cvorovi, jer oni nose vrednosti kljuceva. Zatolistove možemo izostaviti pri crtanju ovih stabala.

Page 8: Definisali su ih Gibs i Sedžvik 1978. godine; Crveno-crna ...nasport.pmf.ni.ac.rs/materijali/486/CRVENO-CRNA STABLA.pdf · Procedura ubacivanja cvora u crveno-crno stablo saˇ n

OvervievStražar u crveno-crnom stabluUbacivanje cvoraBrisanje cvora

Ubacivanje cvora u crveno-crno stablo

Procedura ubacivanja cvora u crveno-crno stablo sa n cvorovazahteva O(log2 n) vremena.

Procedura ubacivanja cvora u crveno-crno stablo je malomodifikovana procedura ubacivanja elementa z u uredjenobinarno stablo, posle cega se cvor z boji crveno.

Kako se, pri tom, može narušiti crveno-crna struktura,neophodno je primeniti levu ili desnu rotaciju za preuredjenjecvorova.

Page 9: Definisali su ih Gibs i Sedžvik 1978. godine; Crveno-crna ...nasport.pmf.ni.ac.rs/materijali/486/CRVENO-CRNA STABLA.pdf · Procedura ubacivanja cvora u crveno-crno stablo saˇ n

OvervievStražar u crveno-crnom stabluUbacivanje cvoraBrisanje cvora

Ubacivanje cvora u crveno-crno stablo (cont.)

Page 10: Definisali su ih Gibs i Sedžvik 1978. godine; Crveno-crna ...nasport.pmf.ni.ac.rs/materijali/486/CRVENO-CRNA STABLA.pdf · Procedura ubacivanja cvora u crveno-crno stablo saˇ n

OvervievStražar u crveno-crnom stabluUbacivanje cvoraBrisanje cvora

Ubacivanje cvora u crveno-crno stablo (cont.)

Page 11: Definisali su ih Gibs i Sedžvik 1978. godine; Crveno-crna ...nasport.pmf.ni.ac.rs/materijali/486/CRVENO-CRNA STABLA.pdf · Procedura ubacivanja cvora u crveno-crno stablo saˇ n

OvervievStražar u crveno-crnom stabluUbacivanje cvoraBrisanje cvora

Ubacivanje cvora u crveno-crno stablo (cont.)

U opštem slucaju se crveno-crna struktura može narušiti samoako je z koren stabla ili u koliko je roditeljski cvor od z crven.

Page 12: Definisali su ih Gibs i Sedžvik 1978. godine; Crveno-crna ...nasport.pmf.ni.ac.rs/materijali/486/CRVENO-CRNA STABLA.pdf · Procedura ubacivanja cvora u crveno-crno stablo saˇ n

OvervievStražar u crveno-crnom stabluUbacivanje cvoraBrisanje cvora

Ubacivanje cvora u crveno-crno stablo (cont.)

Ako je cvor z.p crven, onda on nije koren stabla, pa sigurnopostoji z.p.p.

Trebalo bi da posmatramo šest slucajeva u WHILE petlji, ali trisu simetricna, zavisno od toga da li je roditeljski cvor z.p levo ilidesno dete praroditelja z.p.p od z (zato se posmatra samojedan slucaj, kada je z.p levo dete).

Zatim se proverava ujak cvora z ciju vrednost pamti promenljivay. Ako je y crven imamo Case 1, dok u protivnom algoritamprelazi na Case 2 i Case 3. Jasno da je u sva tri slucaja cvorz.p.p crn.

Na slici je data situacija kada su i z.p i y crveni. Prebojavamo ihu crno, dok z.p.p bojimo u crveno i pomeramo y do z.p.p dvakoraka ponavljajuci tako WHILE petlju.

Case 2. Ujak od z je crn, a z je desno dete roditelja;

Case 3. Ujak od z je crn, a z je levo dete roditelja;

Page 13: Definisali su ih Gibs i Sedžvik 1978. godine; Crveno-crna ...nasport.pmf.ni.ac.rs/materijali/486/CRVENO-CRNA STABLA.pdf · Procedura ubacivanja cvora u crveno-crno stablo saˇ n

OvervievStražar u crveno-crnom stabluUbacivanje cvoraBrisanje cvora

Brisanje cvora iz crveno-crnog stabla

Kao i druge osnovne operacije u crveno-crnom stablu sa ncvorova, brisanje cvora zahteva Olog2 n vremena.

Brisanje cvora je malo složenija operacija od ubacivanja cvora.

Procedura za brisanje cvora iz crveno-crnog stabla zasniva sena proceduri brisanja cvora iz binarnog stabla.

Najpre cemo napisati proceduru TRANSPLANT:

Page 14: Definisali su ih Gibs i Sedžvik 1978. godine; Crveno-crna ...nasport.pmf.ni.ac.rs/materijali/486/CRVENO-CRNA STABLA.pdf · Procedura ubacivanja cvora u crveno-crno stablo saˇ n

OvervievStražar u crveno-crnom stabluUbacivanje cvoraBrisanje cvora

Brisanje cvora iz crveno-crnog stabla (cont.)

Page 15: Definisali su ih Gibs i Sedžvik 1978. godine; Crveno-crna ...nasport.pmf.ni.ac.rs/materijali/486/CRVENO-CRNA STABLA.pdf · Procedura ubacivanja cvora u crveno-crno stablo saˇ n

OvervievStražar u crveno-crnom stabluUbacivanje cvoraBrisanje cvora

Brisanje cvora iz crveno-crnog stabla (cont.)