Azərbaycan  AzərbaycanDeutschland  DeutschlandLietuva  LietuvaMalta  Maltaශ්‍රී ලංකාව  ශ්‍රී ලංකාවTürkmenistan  TürkmenistanTürkiyə  TürkiyəУкраина  Украина
Pagalba
www.datawiki.lt-lt.nina.az
  • Pradžia

Raudonai juodas medis besibalansuojantis dvejetainis paieškos medis informatikoje naudojama duomenų struktūra išrasta 19

Raudonai Juodas medis

  • Pagrindinis puslapis
  • Raudonai Juodas medis
Raudonai Juodas medis
www.datawiki.lt-lt.nina.azhttps://www.datawiki.lt-lt.nina.az

Raudonai-juodas medis – besibalansuojantis dvejetainis paieškos medis, informatikoje naudojama duomenų struktūra, išrasta 1972 . Tokio dvejetainio paieškos medžio realizacija sudėtingesnė, bet jis pasižymi geru blogiausių - geriausių vykdymo trukmės laikų santykiu ir gali būti labai naudingas praktikoje: galima realizuoti O (log n) sudėtingumo elemento įterpimą bei pašalinimą.

Terminologija

Efektingumo įrodymui įvedama tuščio, neturinčio duomenų, lapo sąvoka. Viršūnė neturinti vaikų (lapas) turi pseudo lapus, t. y. tuščias viršūnes.

Savybės

Raudonai-juodas medis turi atitikti šiuos 5 kriterijus:

  1. Kiekvienas elementas yra arba raudonas, arba juodas.
  2. Šaknis yra juoda
  3. Visi tušti (NIL) lapai yra juodi
  4. Raudonos viršūnės vaikai yra juodi
  5. Kelyje nuo šaknies iki kiekvieno lapo yra vienodas skaičius juodų elementų.

Jeigu dvejetainės paieškos medis yra sukonstruotas atsižvelgiant į šiuos 5 kriterijus, tai ilgiausias kelias nuo šaknies iki lapų skirsis nuo trumpiausio ne daugiau kaip du kartus. Dėl šios savybės paieškos, elemento įterpimo bei pašalinimo operacijų sudėtingumas yra O (log n).

Trumpiausias atstumas bus tada, kai kelią sudarys vien tik juodos viršūnės. O ilgiausias atstumas bus tada, kai kas antra viršūnė bus raudona.

Gana dažnas nesusipratimas būna toks, kad Raudonai-juodo medžio lapais yra laikomi NIL (pseudo lapai). Juos dažnai piešiniuose praleidžia ir gali susidaryti įspūdis, kad 4 taisyklė yra pažeidžiama.

Operacijos

Skaitymo operacijos atliekamos lygiai taip pat, kaip ir dvejetainiame paieškos medyje, tačiau atlikus įterpimo ar pašalinimo operaciją medžio savybės gali būti pažeistos.

Įterpimas

Visų pirma įkeliame elementą, tarsi tai būtų dvejetainis paieškos medis ir nudažom jį raudonai. Trečia Raudonai-juodo medžio taisyklė nėra pažeidžiama, bet gali būti pažeista ketvirta ir penkta taisyklės. (Pastaba: įsivesime naują sąvoka – dėdė, viršūnės protėvio vaikas, kuris nėra viršūnės tėvas)

Pastabos:

  • 4, 5 žingsniuose pateikti atvejai galioja tada, kai koreguojamos viršūnės tėvas yra kairys protėvio vaikas. Jeigu jis bus dešinys, tai kairę reikės keisti į dešinę ir atvirkščiai:

Veiksmai:

  1. Koreguojama viršūnė yra medžio šaknis, šią viršūnę nuspalvinam juodai, baigiam darbą.
  2. Koreguojamos viršūnės tėvas yra juodas, baigiam darbą.
  3. Koreguojamos viršūnės tėvas ir dėdė yra raudoni, mes juos nuspalviname juodai, protėvį raudonai. Koreguojama viršūnė dabar bus protėvis (koregavimą pradedam nuo pradžios).
  4. Koreguojamos viršūnės tėvas yra raudonas, bet dėdė yra juodas (jeigu jo nėra, tai laikome, kad jis yra juodas) ir koreguojama viršūnė yra dešinys tėvo vaikas. Mes vykdome kairį posūkį apie tėvą. Po šio veiksmo koreguojama viršūne tampa buvęs viršūnės tėvas (koregavimą pradedam nuo pradžios).
  5. Koreguojamos viršūnės tėvas yra raudonas, dėdė yra juodas arba jo apskritai nėra ir viršūnė yra kairys tėvo vaikas. Sukeičiam protėvio ir tėvo spalvas. Atliekame dešinį posūkį apie protėvį (koregavimą pradedam nuo pradžios). Nekeičiam koreguojamos viršūnės.

Pašalinimas

Įterpdami elementą į medį sprendėm dviejų vienas po kito einančių raudonų elementų problemą (tai pažeidė vieną iš taisyklių). Ištrinant elementą iš medžio, reikės tikrinti ar mes nesumažinome viename kelyje juodų elementų skaičiaus. Jeigu iš medžio šalinamas lapas (kraštinis elementas), tai galime iš karto vykdyti veiksmus. Jeigu šalinamas ne lapas, o kita viršūnė, tai tada yra randama tinkamiausia reikšmė (dešinėje – mažiausias elementas, kairėje – didžiausias), kuri galėtų pakeisti šalinamą viršūnę. Sukeičiame reikšmes ir atliekame pašalinimo operaciją jau su rastu elementu (jį žymėsime X). Tai būtinai bus arba lapas, arba viršūnė su vienu vaiku. Pastaba : .

  • Jeigu viršūnė X turi vaiką, sukeičiame ją su vaiku.
  • Jeigu viršūnė X yra raudona, tai mes ją sukeitėme su juodu vaiku (po sukeitimo vaikas tapo X tėvu). Nepažeidžiama nė viena Raudonai-juodo medžio savybė – galime baigti (žiūrėti koregavimo pabaigą).
  • Jeigu viršūnė X yra juoda, bet vaikas raudonas, tai mes vaiką nuspalvinam juodai (po sukeitimo vaikas tapo X tėvu). Nepažeidžiama nė viena Raudonai-Juodo medžio savybė – galime baigti(žiūrėti koregavimo pabaigą).
  • Viršūnė X neturėjo vaikų arba ji turėjo juodą vaiką (po apkeitimo vaikas tapo viršūnės X tėvu), koregavimą pradedame nuo juos.

Pastabos:

  • Jei atskirai nebus nurodoma, kad yra keičiama koreguojamoji viršūnė, kalbama apie tą pačią viršūnę
  • Analizuojam tą atvejį, kai koreguojama viršūnė yra kairys tėvo vaikas. Jeigu jis bus dešinys, tai kairę reikės keisti į dešinę ir atvirkščiai
  • Įsivesime naują sąvoką – brolis, koreguojamos viršūnės tėvo kitas vaikas
  • Visus žingsnius reikia vykdyti iš eilės, jeigu nenurodyta pradėti iš naujo.

Koregavimas:

  1. Koreguojama viršūnė yra šaknis arba ji nėra juoda, baigiam koregavimą.
  2. Jeigu koreguojamos viršūnės brolio spalva yra raudona, tai brolio spalvą keičiam į juodą, tėvo į raudoną. Atliekam kairį posūkį apie tėvą. Koreguojama viršūnė nėra keičiama
  3. Koreguojamos viršūnės brolio abu vaikai yra juodi (NIL reikšmė reiškia juoda spalvą!). Keičiam brolio spalvą į raudoną. Koreguojama viršūnė tampa koreguojamos viršūnės tėvas (Nesumaišyti su viršūne X. Ši viršūnė koregavimo pradžioje buvo koreguojama viršūnė, jos rodyklė yra įsimenama, kad vėliau ją galima būtų ištrinti!), pradedam žingsnius nuo pradžių
  4. Koreguojamos viršūnės brolio abiejų vaikų spalva nėra juoda, bet brolio dešinys vaikas yra juodas. Brolio kairį vaiką nuspalvinam juodai, brolį – raudonai, atliekam dešinį posūkį apie brolį. Koreguojama viršūnė nėra keičiama
  5. Koreguojamos viršūnės brolio abiejų vaikų spalva nėra juoda, tai brolį nuspalvinam tėvo spalva, tėvą nuspalvinam juodai. Brolio dešinį vaiką juodai, atliekam kairį posūkį apie tėvą. Koreguojama viršūnė nėra keičiama.
  6. Užbaigti koregavimą.

Koregavimas baigiamas, nuspalviname juodai medžio šaknį ir koreguojamą viršūnę. Pašaliname X viršūnę.

Šaltiniai

  1. CS 660: Red–Black tree notes Archyvuota kopija 2008-05-09 iš Wayback Machine projekto.
  2. Mathworld: Red–Black Tree

Autorius: www.NiNa.Az

Išleidimo data: 23 Bir, 2025 / 17:31

vikipedija, wiki, lietuvos, knyga, knygos, biblioteka, straipsnis, skaityti, atsisiųsti, nemokamai atsisiųsti, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, pictu, mobilusis, porn, telefonas, android, iOS, apple, mobile telefl, samsung, iPhone, xiomi, xiaomi, redmi, pornografija, honor, oppo, Nokia, Sonya, mi, pc, web, kompiuteris, Informacija apie Raudonai Juodas medis, Kas yra Raudonai Juodas medis? Ką reiškia Raudonai Juodas medis?

Raudonai juodas medis besibalansuojantis dvejetainis paieskos medis informatikoje naudojama duomenu struktura israsta 1972 Tokio dvejetainio paieskos medzio realizacija sudetingesne bet jis pasizymi geru blogiausiu geriausiu vykdymo trukmes laiku santykiu ir gali buti labai naudingas praktikoje galima realizuoti O log n sudetingumo elemento įterpima bei pasalinima TerminologijaEfektingumo įrodymui įvedama tuscio neturincio duomenu lapo savoka Virsune neturinti vaiku lapas turi pseudo lapus t y tuscias virsunes SavybesRaudonai juodas medis turi atitikti siuos 5 kriterijus Kiekvienas elementas yra arba raudonas arba juodas Saknis yra juoda Visi tusti NIL lapai yra juodi Raudonos virsunes vaikai yra juodi Kelyje nuo saknies iki kiekvieno lapo yra vienodas skaicius juodu elementu An example of a red black tree Jeigu dvejetaines paieskos medis yra sukonstruotas atsizvelgiant į siuos 5 kriterijus tai ilgiausias kelias nuo saknies iki lapu skirsis nuo trumpiausio ne daugiau kaip du kartus Del sios savybes paieskos elemento įterpimo bei pasalinimo operaciju sudetingumas yra O log n Trumpiausias atstumas bus tada kai kelia sudarys vien tik juodos virsunes O ilgiausias atstumas bus tada kai kas antra virsune bus raudona Gana daznas nesusipratimas buna toks kad Raudonai juodo medzio lapais yra laikomi NIL pseudo lapai Juos daznai piesiniuose praleidzia ir gali susidaryti įspudis kad 4 taisykle yra pazeidziama OperacijosSkaitymo operacijos atliekamos lygiai taip pat kaip ir dvejetainiame paieskos medyje taciau atlikus įterpimo ar pasalinimo operacija medzio savybes gali buti pazeistos Įterpimas Visu pirma įkeliame elementa tarsi tai butu dvejetainis paieskos medis ir nudazom jį raudonai Trecia Raudonai juodo medzio taisykle nera pazeidziama bet gali buti pazeista ketvirta ir penkta taisykles Pastaba įsivesime nauja savoka dede virsunes protevio vaikas kuris nera virsunes tevas Pastabos 4 5 zingsniuose pateikti atvejai galioja tada kai koreguojamos virsunes tevas yra kairys protevio vaikas Jeigu jis bus desinys tai kaire reikes keisti į desine ir atvirksciai Veiksmai Koreguojama virsune yra medzio saknis sia virsune nuspalvinam juodai baigiam darba Koreguojamos virsunes tevas yra juodas baigiam darba Koreguojamos virsunes tevas ir dede yra raudoni mes juos nuspalviname juodai protevį raudonai Koreguojama virsune dabar bus protevis koregavima pradedam nuo pradzios Koreguojamos virsunes tevas yra raudonas bet dede yra juodas jeigu jo nera tai laikome kad jis yra juodas ir koreguojama virsune yra desinys tevo vaikas Mes vykdome kairį posukį apie teva Po sio veiksmo koreguojama virsune tampa buves virsunes tevas koregavima pradedam nuo pradzios Koreguojamos virsunes tevas yra raudonas dede yra juodas arba jo apskritai nera ir virsune yra kairys tevo vaikas Sukeiciam protevio ir tevo spalvas Atliekame desinį posukį apie protevį koregavima pradedam nuo pradzios Nekeiciam koreguojamos virsunes Pasalinimas Įterpdami elementa į medį sprendem dvieju vienas po kito einanciu raudonu elementu problema tai pazeide viena is taisykliu Istrinant elementa is medzio reikes tikrinti ar mes nesumazinome viename kelyje juodu elementu skaiciaus Jeigu is medzio salinamas lapas krastinis elementas tai galime is karto vykdyti veiksmus Jeigu salinamas ne lapas o kita virsune tai tada yra randama tinkamiausia reiksme desineje maziausias elementas kaireje didziausias kuri galetu pakeisti salinama virsune Sukeiciame reiksmes ir atliekame pasalinimo operacija jau su rastu elementu jį zymesime X Tai butinai bus arba lapas arba virsune su vienu vaiku Pastaba Jeigu virsune X turi vaika sukeiciame ja su vaiku Jeigu virsune X yra raudona tai mes ja sukeiteme su juodu vaiku po sukeitimo vaikas tapo X tevu Nepazeidziama ne viena Raudonai juodo medzio savybe galime baigti ziureti koregavimo pabaiga Jeigu virsune X yra juoda bet vaikas raudonas tai mes vaika nuspalvinam juodai po sukeitimo vaikas tapo X tevu Nepazeidziama ne viena Raudonai Juodo medzio savybe galime baigti ziureti koregavimo pabaiga Virsune X neturejo vaiku arba ji turejo juoda vaika po apkeitimo vaikas tapo virsunes X tevu koregavima pradedame nuo juos Pastabos Jei atskirai nebus nurodoma kad yra keiciama koreguojamoji virsune kalbama apie ta pacia virsune Analizuojam ta atvejį kai koreguojama virsune yra kairys tevo vaikas Jeigu jis bus desinys tai kaire reikes keisti į desine ir atvirksciai Įsivesime nauja savoka brolis koreguojamos virsunes tevo kitas vaikas Visus zingsnius reikia vykdyti is eiles jeigu nenurodyta pradeti is naujo Koregavimas Koreguojama virsune yra saknis arba ji nera juoda baigiam koregavima Jeigu koreguojamos virsunes brolio spalva yra raudona tai brolio spalva keiciam į juoda tevo į raudona Atliekam kairį posukį apie teva Koreguojama virsune nera keiciama Koreguojamos virsunes brolio abu vaikai yra juodi NIL reiksme reiskia juoda spalva Keiciam brolio spalva į raudona Koreguojama virsune tampa koreguojamos virsunes tevas Nesumaisyti su virsune X Si virsune koregavimo pradzioje buvo koreguojama virsune jos rodykle yra įsimenama kad veliau ja galima butu istrinti pradedam zingsnius nuo pradziu Koreguojamos virsunes brolio abieju vaiku spalva nera juoda bet brolio desinys vaikas yra juodas Brolio kairį vaika nuspalvinam juodai brolį raudonai atliekam desinį posukį apie brolį Koreguojama virsune nera keiciama Koreguojamos virsunes brolio abieju vaiku spalva nera juoda tai brolį nuspalvinam tevo spalva teva nuspalvinam juodai Brolio desinį vaika juodai atliekam kairį posukį apie teva Koreguojama virsune nera keiciama Uzbaigti koregavima Koregavimas baigiamas nuspalviname juodai medzio saknį ir koreguojama virsune Pasaliname X virsune SaltiniaiCS 660 Red Black tree notes Archyvuota kopija 2008 05 09 is Wayback Machine projekto Mathworld Red Black Tree

Naujausi straipsniai
  • Birželis 18, 2025

    Merilandas

  • Birželis 23, 2025

    Merečovščizna

  • Birželis 19, 2025

    Meno kūrinys

  • Birželis 24, 2025

    Menininkas

  • Birželis 25, 2025

    Menksiečių kalba

www.NiNa.Az - Studija

    Susisiekite
    Kalbos
    Susisiekite su mumis
    DMCA Sitemap
    © 2019 nina.az - Visos teisės saugomos.
    Autorių teisės: Dadash Mammadov
    Nemokama svetainė, kurioje galima dalytis duomenimis ir failais iš viso pasaulio.
    Viršuje