Červené a černé stromy: popis, rysy

Rudolf Bayer vyvinul systém "červeno-černé stromy" na počátku 70. let. Jméno stejné bylo dáno L. Gimpasovi a R. Sedgwickovi.

To je červeno-černý strom

Je třeba poznamenat, že se druh, samobalansyruyuschyhsya binární stromy, které poskytují velikost výšky počítání počtu jednotek a produkují primární a základní způsob strom vyhledávání na krátkou dobu. Mezi tyto operace patří spojování, vyloučení a sledování webu. Zůstatek je poskytován na základě doplnění atributu použití kódu barev. Tato vlastnost přebírá jednu z pravděpodobných konceptů a je označena jednou z uvedených barev.


Počet jednotek na černou nití od počátku (root) ke konečnému (písmeno) s názvem černé vysoké stromy.

Vznik výrazu

Při popisu samobalansyruyuscheesya vyhledávací strom v jeho papíru autoři zřejmě netušil, že budou zakladatelé nové funkční období. Ale osud rozhodl, že tiskařská barva byly k dispozici pouze dvě barvy. Označili také každý bit, který se připojí k dalšímu uzlu.

Použití

V počítačové červeno-černém stromu používaného k vytvoření srovnatelné údaje, které mohou zahrnovat různé vytrvalosti a nápisy nebo čísla. Můžete vytvořit červeno-černý strom na ActionScript, Python, C ++ a prakticky jakýkoli jiný programovací jazyk. To je velmi jednoduché. Červeno-černý strom Java je také pěknýrozšířené

Vlastnosti

Černě červené stromy jsou vyhledávací stromy v binárním souřadnicovém systému. V těchto systémech má libovolná stránka určitou hodnotu barvy. Může trvat na jednom z výše uvedených symbolů. Kromě všech podmínek vztahujících se na binární majestátní stromy, jsme se zabývali na odrůdy, také použít následující pravidla:


  • Barva web je pouze jeden ze dvou výše. Žádné další možnosti, to se také odráží ve jménu termínu.
  • Kořen stromu musí být vždy černý. Výjimky jsou možné, ale tato odchylka od pravidla zvyšuje riziko, že se samo-vyvažování stromu zhroutí.
  • Všechny listy mají nulovou hodnotu (NIL) a jsou označeny černou barvou.
  • Je třeba zajistit, aby byli dva potomci každého červeného nadřazeného uzlu černí.
  • Jakýkoli světelný průběh z určitého uzlu do libovolného pomocného uzlu listu poskytuje přesně stejný počet černých strukturních jednotek.
  • Někdy jsou červené a černé stromy interpretovány jako triviální binární vyhledávací stromy. Jejich rozdíly jsou určeny pouze skutečností, že výměnou za určité barevné uzly jsou výše uvedené hodnoty plstěné žebra.

    Proč zvolit právě červeno-černý strom

    Černé a červené stromy jsou jedním z nejpopulárnějších volby nezávisle balansyruyuschyhsya binární vyhledávací stromy, které se často obracejí do praktického hlediska. Co dělá tuto popularitu jasnou? Praxe je líná a stojí za to přijmout. Všechno je příliš těžkopádnéa obtížně použitelné a současně dává poměrně podobné výsledky při použití jednodušších metod, zemře nebo odchází do vzdáleného plánu. Tato prevalence červenohnědých stromů u lidí je způsobena skutečností, že nejčastěji poskytují optimální rovnováhu mezi kvalitou a úrovní rovnováhy a zakovrystosti její podpory.
    Například pokud je porovnáme s perfektně vyváženými stromy, pak by mohlo dojít k situaci, kdy se zjistí, že "ideální" zástupci ukládají příliš neslučitelné požadavky. A pokud jde o provádění akce vyloučení ze stromu nebo přetáčení příliš mnoho času a úsilí se vynaloží na stabilizaci rovnováhy v dané situaci.

    Procesy

    Proces kontroly černých a červených binárních stromů je téměř stejný pro všechny ostatní binární větvení vyhledávání. To je pravda, protože každý černobílý strom je jednou ze soukromých možností klasického binárního vyhledávacího stromu. Spolupráce s nimi by však měla vzít v úvahu větší pravděpodobnost, že přímá produkce zařazení nebo vyloučení údajů může poškodit strukturu černého a červeného stromu. Obrovskou výhodou je, že pro rekonstrukci vlastností je třeba relativně malý počet akcí, jako je změna barvy a méně než tři otáčky stromu. Ve skutečnosti všechny tyto operace netrvají dlouho. Zahájení akce vložení nebo vložení položky stojí za přidání do dalšího uzlu. Tato funkce je stejná pro všechny binární vyhledávací stromy.Dalším krokem je zbarvení uzlu červeně. Jediným rozdílem je, že pokud vkládání binárního vyhledávacího stromu nejprve přidá písmeno, pak v černé a červené poslední nejsou žádné informace. V důsledku toho se místo nich přidává interní uzel, který přijímá červenou barvu a dva z jeho černých potomků. Naše další akce jsou přímo podmíněny barvou sousedních uzlů. Pro ně je použit termín "strýc". Přímá analogie s genealogickým stromem. V důsledku toho:
  • Charakteristická skutečnost, že všechny listy jsou černé barvy, musí být vždy provedeny.
  • Postupnost skutečnosti, že dva deriváty každého červeného uzlu zůstávají černé barvy, mohou být přerušeny. Ale k tomu dochází pouze při přidání červeného webu, při změně barvy černé na červenou nebo při rozložení celého stromu.
  • Zaznamenáváme také, že sekvence od uzlu k písmenu, která zahrnuje stejný počet černých uzlů, může být ovlivněna. K tomu dochází pouze při zapnutí černého uzlu, při změně červeného prvku na černý, stejně jako v opačném případě černé a červené nátěry. Totéž platí pro otáčení stromů.
  • Po studiu všech výše uvedených je snadné zjistit, jak hledat v červeném a černém stromu. Zajímavou interpretací takového jednoduchého pojetí jako stromu s popisem jeho barvy - červeno-černé nebo černě hnědé. Teď jste si toho vědomi.

    Související publikace