Crveno-crna stabla Skicirajte polazno prazno crveno-crno stablo uslijed sljedećih promjena (redom kojim su navedene): a) dodavanja redom: 10, 18, 3, 4, 6, 8, 2, 12, 15 b) uklanjanja redom: 10, 6
Umjesto bojanja čvorova razlikujte čvorove na način da su crveni čvorovi u obliku pravokutnika, a crni u obliku kruga. Ne morate navoditi ili opisivati korake gradnje, na skicama se moraju vidjeti promjene stabla prilikom dodavanja/brisanja elementa. Ne morate skicirati NULL listove stabla (osim ako imaju ključnu važnost), oni se podrazumijevaju.
Rješenje: a) Dodavanje 10, 18, 3, 4, 6, 8, 2, 12, 15 Elementi se dodaju po uzoru na binarno search stablo. Sam prikaz unosa čvora se preskače zbog preglednosti. 1. Dodaje se element 10. Novi čvor ima crvenu boju. Stablo je prazno što znači da dodan čvor postaje korijen stabla. 10
2. Njegova boja postaje zbog toga crna. 10
3. Dodaju se elementi 18 i 3. Boja novih čvorova je crvena. Korijen ostaje crn. 10
3
18
4. Dodaje se element 4. Novi čvor N i roditelj P imaju crvenu boju čime se narušava 4.
definicijsko pravilo. Ujak U od N također je crvene boje što znači da treba promijeniti boje od P, U i djeda G u crvenu boju. G je zapravo korijen stabla kojem se zbog toga boja mijenja u crnu (kao u 2. koraku). 10
3
18
4
5. Dodaje se element 6. Čvor N i čvor P su crvene boje. N je desno od P, a P desno od G. Obavlja se rotacija i zatim zamjena boja. 10
10 4
4
18
3
18
3
6
6
6. Dodaje se element 8. Čvorovi N, P i U su crvene boje. Obavlja se zamjena boja između
čvora G i čvorova P i U. 10 4
3
18
6
8
7. Dodaju se elementi 2 i 12. Nema potrebe za promjenom boja.
10 4
3
2
18
6
12
8
8. Dodaje se element 15. Čvorovi N i P su crvene boje. N je desno od P, a P lijevo od G. Obavlja se rotacija.
10 4
18
3
6
15
2
8
12
Čvor N (element 12) i P (element 15) su crvene boje. N je lijevo od P, a P lijevo od G. Obavlja se rotacija i zatim zamjena boja.
10 15
4
3
6
12
2
18
8
Konačno stablo:
10 15
4
3
2
6
12
8
18
b) Uklanjanje 10, 6 1. Uklanja se element 10. Čvor s tim elementom el ementom je korijen stabla. Potrebno je pronaći tog podstabla). Kopira se najveći element njegovog lijevog podstabla (najdesniji čvor tog njegova vrijednost u korijen i potom briše taj čvor. Nema potrebe za promjenom boja. 8 15
4
3
6
12
18
2
2. Uklanja se element 6. Čvor s ele mentom 6 je list stabla. Taj list se briše i NULL list prosljeđuje crnu boju čvoru P koji zbog toga postaje dvostruko crn. NULL list je desno dijete, njegov čvor sibling S S je crne boje, a njegov lijevi nećak je crvene boje. Obavlja se rotacija i zatim zamjena boja. 8 15
3
2
4
12
18
NULL
Konačno stablo:
8 15
3
2
4
12
18