Pred razumevanjem Rdeče-črno drevo in AVL drevo razlike, bi morali vedeti o rdeče-črnem drevesu in drevesu AVL ločeno.
Kaj je rdeče-črno drevo?
Rdeče-črno drevo je samouravnovešeno binarno iskalno drevo v katerem vsako vozlišče vsebuje en dodaten bit informacije, ki označuje barvo vozlišča. Barva vozlišča je lahko rdeča ali črna, odvisno od bitnih informacij, ki jih shrani vozlišče.
Lastnosti
Sledijo lastnosti, povezane z rdeče-črnim drevesom:
- Korensko vozlišče drevesa mora biti črno.
- Rdeče vozlišče ima lahko samo črne otroke. Ali pa lahko rečemo, da dve sosednji vozlišči ne moreta biti rdeče barve.
- Če vozlišče nima levega ali desnega otroka, se to vozlišče imenuje listno vozlišče. Torej smo postavili levega in desnega otroka pod listno vozlišče, znano kot nič
Črno globino ali črno višino listnega vozla lahko definiramo kot število črnih, na katere naletimo, ko se premaknemo iz listnega vozla v korensko vozlišče. Ena od ključnih lastnosti rdeče-črnega drevesa je, da mora imeti vsako listno vozlišče enako globino črne barve.
Razumejmo to lastnost na primeru.
V zgornjem drevesu je pet vozlišč, od katerih je eno rdeče, druga štiri vozlišča pa črna. V zgornjem drevesu so trije listni vozli. Zdaj izračunamo črno globino vsakega listnega vozla. Kot lahko opazimo, je črna globina vseh treh listnih vozlov 2; torej je rdeče-črno drevo.
Če drevo ne izpolnjuje nobene od zgornjih treh lastnosti, potem ni rdeče-črno drevo.
Višina rdeče-črnega drevesa
Upoštevajte h kot višino drevesa z n vozlišči. Kakšna bi bila najmanjša vrednost n?. Vrednost n je najmanjša, ko so vsa vozlišča črna. Če drevo vsebuje vsa črna vozlišča, bi bilo drevo popolno binarno drevo. Če je višina celotnega binarnega drevesa h, potem je število vozlišč v drevesu:
n = 2h -1
Kakšna bi bila največja vrednost n?
Vrednost n je največja, če ima vsako črno vozlišče dva rdeča otroka, vendar rdeče vozlišče ne more imeti rdečih otrok, tako da bo imelo črne otroke. Na ta način se izmenjujejo plasti črnih in rdečih otrok. Torej, če je število črnih plasti h, potem je tudi število rdečih plasti h; tako skupna višina drevesa postane 2h. Skupno število vozlišč je:
n = 2*2h-1
Kaj je drevo AVL?
An AVL drevo je samouravnoteženo binarno iskalno drevo, če upoštevamo spodnji primer, ki je binarno iskalno drevo in uravnoteženo drevo.
V zgornjem drevesu je najslabša časovna zahtevnost iskanja elementa O(h), tj. višina drevesa. V zgornjem primeru je število primerjav, izvedenih za iskanje elementa 17, 4 in višina drevesa je prav tako 4.
Če upoštevamo poševno binarno drevo, kot je prikazano spodaj:
V zgornjem desnem poševnem drevesu je število primerjav, opravljenih za iskanje elementa 17, 5 in število elementov, prisotnih v drevesu, je prav tako 5. Zato lahko rečemo, da če je drevo poševno binarno drevo, potem je časovna kompleksnost bi bil O(n).
Zdaj moramo ta poševna drevesa uravnotežiti tako, da bodo imela časovno kompleksnost O(h). Obstaja izraz, znan kot a faktor ravnotežja , ki se uporablja za samouravnoteženje binarnega iskalnega drevesa. Faktor ravnotežja se lahko izračuna kot:
Faktor ravnotežja = višina levega poddrevesa-višina desnega poddrevesaVrednost faktorja ravnotežja je lahko 1, 0 ali -1. Če ima vsako vozlišče v binarnem drevesu vrednost 1, 0 ali -1, potem je to drevo uravnoteženo binarno drevo ali drevo AVL.
Drevo je znano kot popolnoma uravnoteženo drevo, če je faktor ravnovesja vsakega vozlišča 0. Drevo AVL je skoraj uravnoteženo drevo, ker ima vsako vozlišče v drevesu vrednost faktorja ravnovesja 1, 0 ali -1.
Razlike med rdeče-črnim drevesom in drevesom AVL.
V nadaljevanju so navedene razlike med rdeče-črnim drevesom in drevesom AVL:
Rdeče-črno drevo je binarno iskalno drevo in AVL drevo je prav tako binarno iskalno drevo.
V rdeče-črnem drevesu veljajo naslednja pravila:
- Vozlišče v rdeče-črnem drevesu je rdeče ali črne barve.
- Barva koreninskega vozlišča mora biti črna.
- Sosednja vozlišča ne smejo biti rdeča. Z drugimi besedami, lahko rečemo, da rdeče vozlišče ne more imeti rdečih otrok, črno vozlišče pa lahko črne otroke.
- Na vsaki poti mora biti enako število črnih vozlišč; potem se samo drevo lahko šteje za rdeče-črno drevo.
- Zunanja vozlišča so ničelna vozlišča, ki so vedno črne barve.
Pravilo drevesa AVL:
Vsako vozlišče mora imeti faktor ravnovesja -1, 0 ali 1.
Na zgornji sliki moramo preveriti, ali je drevo rdeče-črno drevo ali ne. Da bi to preverili, moramo najprej preveriti, ali je drevo binarno iskalno drevo ali ne. Kot lahko opazimo na zgornji sliki, izpolnjuje vse lastnosti binarnega iskalnega drevesa; zato je binarno iskalno drevo. Drugič, preveriti moramo, ali izpolnjuje zgoraj omenjena pravila ali ne. Zgornje drevo izpolnjuje vseh zgornjih pet pravil; zato sklepa, da je zgornje drevo rdeče-črno drevo.
Na zgornji sliki moramo preveriti, ali je drevo drevo AVL ali ne. Ker ima vsako vozlišče vrednost faktorja ravnovesja -1, 0 ali 1, je to drevo AVL.
Če so v primeru rdeče-črnega drevesa izpolnjena vsa zgornja pravila, pod pogojem, da je drevo binarno iskalno drevo, se za drevo reče, da je rdeče-črno drevo.
'abc's v številkah'
V primeru drevesa AVL, če je faktor ravnotežja -1, 0 ali 1, se za zgornje drevo reče, da je drevo AVL.
Če drevo ni uravnoteženo, se za uravnoteženje drevesa v rdeče-črnem drevesu uporabita dve orodji:
Če drevo ni uravnoteženo, se za uravnoteženje drevesa v drevesu AVL uporabi eno orodje:
V primeru rdeče-črnega drevesa sta operaciji vstavljanja in brisanja učinkoviti. Če je drevo uravnoteženo s prebarvanjem, so operacije vstavljanja in brisanja učinkovite v rdeče-črnem drevesu.
V primeru drevesa AVL je operacija iskanja učinkovita, saj zahteva samo eno orodje za uravnoteženje drevesa.
V primeru rdeče-črnega drevesa je časovna zahtevnost za vse operacije, tj. vstavljanje, brisanje in iskanje, O(logn).
V primeru drevesa AVL je časovna zahtevnost za vse operacije, tj. vstavljanje, brisanje in iskanje, O(logn).
Razumejmo razlike v obliki tabele.
Parameter | Rdeče črno drevo | Drevo AVL |
---|---|---|
Iskanje | Rdeče črno drevo ne zagotavlja učinkovitega iskanja, saj so rdeče črna drevesa približno uravnotežena. | Drevesa AVL zagotavljajo učinkovito iskanje, saj gre za strogo uravnoteženo drevo. |
Vstavljanje in brisanje | Vstavljanje in brisanje sta lažja v rdečem črnem drevesu, saj zahteva manj vrtenja za uravnoteženje drevesa. | Vstavljanje in brisanje sta v drevesu AVL zapletena, saj zahtevata večkratno rotacijo za uravnoteženje drevesa. |
Barva vozlišča | V rdeče-črnem drevesu je barva vozlišča rdeča ali črna. | V primeru dreves AVL ni barve vozlišča. |
Faktor ravnotežja | Ne vsebuje nobenega faktorja ravnovesja. Shranjuje le en bit informacije, ki označuje rdečo ali črno barvo vozlišča. | Vsako vozlišče ima faktor ravnovesja v drevesu AVL, katerega vrednost je lahko 1, 0 ali -1. Potrebuje dodaten prostor za shranjevanje faktorja ravnovesja na vozlišče. |
Strogo uravnoteženo | Rdeče-črna drevesa niso strogo uravnotežena. | Drevesa AVL so strogo uravnotežena, kar pomeni, da se višina levega poddrevesa in višina desnega poddrevesa razlikujeta največ za 1. |