Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
esepter&teoria.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
13.77 Mб
Скачать

8.Бинарлы іздеу ағашының элементтерін жою.

Бинарлы іздеу ағашының элементтерін жою. Сонымен, бинарлы іздеу ағашынан элементтерді жою үшін, берілген операциялардан кейін пайда болған объект(граф) бинарлы іздеу ағашы болатынын анықтау керек.

Мұнда 3 жағдай қарастырылады. Ең қарапайымынан бастайық. Егер жойылатын элемент, ағаштың түйіні ақырғы төбе болса, онда ол ешқандай қиындықсыз жойыла береді, немесе мұнда ағашқа ешқандай коррекция талап етілмейді, тек жойылатын түйіннің тікелей тегінің сәйкес өрісіне nill жазуынан басқа.

Егер жойылатын түйіннің(мысалы, №8 түйін 13 мәнімен) тек бір тікелей ұрпағы болса, онда ол ұрпақ жойылатын түйіннің орнына көшіріледі. Геометриялық тұрғыдан алғанда мұнда түбірі көшірілетін элемент болатын ішкі ағашта көшіріледі, бірақ ішкі ағаштардың ішінде сілтемелер ешбір өзгеріссіз қалады. Осы ерекшелік бұл операцияны стандарттық кодтаумен жүргізуге өте ыңғайлы болады.

Енді соңғы жағдай қалды, яғни жойылатын элементтін (3 түйін 7 мәнімен) екі тікелей ұрпағы бар болса, бұл жағдайда жойылатын элементтің оң жақ тікелей ұрпақтарының ұрпақтары арасында ең кіші мәнімен түйін – элемент табу керек және оны жойылатын элементтің орнына ауысуы керек.

Тура осылай жойылатын элементтің сол жақ тікелей ұрпақ/ң ұрпақ/ы арасында максималды мәнімен элемент табуға ж/е оны жойылатын элементтің орнына ауыстыруға болады.

Басқа сөзбен айтқанда, егер жойылатын V элементтің, өзі түбірі болатын екі ішкі ағаштары бар болса, онда оның ұрпағы V’ немесе алдыңғы «тегі» V’’ симметриялы ретті айналымда жойылатын элементтік орнын басу керек. Сонымен қатар V-түйінін V’- түйініне ауыстыру кезінде V’-түйінінің оң жақ тікелей ұрпағы V’-түйінінің орнын басады. Сәйкесінше, V’-түйінін V’’- түйініне ауыстырғанда да ұрпақ түйін орнын басады.

Бұл бөлімнің қорытындысына айта кететін бір жайт, бинарлы ағаштарға орындалатын басқа да арнайы операциялар бар. Мысалы: бұл ағаштың ішкі ағаштарына AVL- ағаштарның түйіндерін кірістіру кезінде бұрылу операциясы анықталады.

9.Қызыл-қара ағаш және оның ерекшеліктері.

Қызыл қара ағаш бинарлы іздеу ағашы, онда теңестіру ағаш түйінінің «түсі» негізінде жүзеге асады, ол тек қана екі мән қабылдайды «қызыл» және «қара». Сонымен қатар ағаштың барлық жапырақтары фиктивті болып табылады және оларды мәлімет болмайды, бірақ ол ағашқа қатысты болады әрі қара болып табылады. Жадыны үнемдеу үшін фиктивті жапырақтарды бір ортақ жапырақ етуге болады. Қасиеттері: Қызыл-қара ағаш бинарлы ағаш болып табылады, ондағы әрбір түйінге қосымша атрибут сәйкестендірілген – түс және оған келесі қасиеттер орындалады:

  1. Әр түйін қызыл немесе қара түспен маркерленген

  2. Түбір және ағаштың ақырғы түйіндері(жапырақтар) – қара

  3. Қызыл түйінде аналық түйін – қара

  4. х әр түйіннен шығатын қарапайым жолдар жапырақтарға дейін бірдей мөлшердегі қара түйіндерді қамтиды

  5. Қара түйіннің қара анасы болуы мүмкін

Қызыл-қара ағаштың биіктігі

Теорема.N кілті бар қызыл-қара ағаштың биіктігі 2hb+1 – 1.

Лемма:Қызыл-қара ағашта hb қара биіктігімен ішкі төбелер саны 2hb+1 – 1 кем емес.

Дәлелдеу: Егер жапырақты қарастырсақ, онда ол үшін лемма дұрыс. Ішкі x төбесін қарастырайық. hb(x)=h’ болсын. Онда оның ұрпағы p - қара болса, онда биіктік hb(x)=h’–1, ал егер қызыл болса, онда hb(x)=h’. Осылай, индукцияның жалғасуы барысында, ағашша/да 2h’ – 1 кем емес төбе болады, ал барлық ағашта сәкесінше, 2h’ – 1 + 2h’ – 1 + 1=2h’+1 – 1 кем емес төбе болады.

Егер ағаштың қалыпты биіктігі h болса, онда ағаштың қара биіктігі h/2 – 1 кем болмайды және лемма бойынша ағаштағы ішкі төбелер саны N>=2h/2 – 1

Теңсіздікті логарифмдесек:

Log(N+1)>=h/2 2log(N+1)>=h H<=2log(N+1) [1]

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]