Главная » Просмотр файлов » Т. Кормен, Ч. Лейсерзон, Р. Риверст, К. Штайн - Алгоритмы. Построение и анализ (2013)

Т. Кормен, Ч. Лейсерзон, Р. Риверст, К. Штайн - Алгоритмы. Построение и анализ (2013) (1162189), страница 72

Файл №1162189 Т. Кормен, Ч. Лейсерзон, Р. Риверст, К. Штайн - Алгоритмы. Построение и анализ (2013) (Т. Кормен, Ч. Лейсерзон, Р. Риверст, К. Штайн - Алгоритмы. Построение и анализ (2013)) 72 страницаТ. Кормен, Ч. Лейсерзон, Р. Риверст, К. Штайн - Алгоритмы. Построение и анализ (2013) (1162189) страница 722019-09-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 72)

Другими словами, корень 345 Глава 13. Красна-черные деревьв может быть как черным, так и красным. Рассмотрите ослабленное красно-черное дерево Т, корень которого красный. Если мы перекрасим корень дерева Т из красного цвета в черный, будет ли полученное в результате дерево красно-черным? 13.1.4 Предположим, что каждый красный узел в красно-черном дереве "поглощается" его черным родительским узлом, так что дочерний узел красного узла становится дочерним узлом его черного родителя (мы не обращаем внимания на то, что при этом происходит с ключами в узлах).

Чему равен возможный порядок черного узла после того, как будут поглощены все его красные потомки? Что вы можете сказать о глубине листьев полученного дерева? Покажите, что самый длинный простой нисходящий путь от вершины х к листу красно-черного дерева имеет длину, не более чем в два раза превышающую кратчайший нисходящий путь от х к листу-потомку. !3. 1еб Чему равно наибольшее возможное количество внутренних узлов в красно-черном дереве с черной высотой й? А наименьшее возможное количество? 13.1. 7 Опишите красно-черное дерево с и ключами с наибольшим возможным отношением количества красных внутренних узлов к количеству черных внутренних узлов.

Чему равно зто отношение? Какое дерево имеет наименьшее указанное отношение, и чему равна его величина? 13.2. Повороты Операции над деревом поиска Ткее-1хзект и Ткее-Оееете, будучи применены к красно-черному дереву с и ключами, выполняются за время 0(1б и). Поскольку они изменяют дерево, в результате их работы могут нарушаться красно- черные свойства, перечисленные в разделе 13.1. Для восстановления этих свойств необходимо изменить цвета некоторых узлов дерева, а также структуру его указателей. Изменения в структуре указателей будут выполняться с помошью ловоровмов (голапопз), которые представляют собой локальные операции в дереве поиска, сохраняющие свойство бинарного дерева поиска.

На рис. 13.2 показаны два типа поворотов — левый и правый. При выполнении левого поворота в узле х предполагается, что его правый дочерний узел у не является листом Т. М; х может быть любым узлом дерева, правый дочерний узел которого — не Т. пй. Левый поворот выполняется "вокруг" связи между х и у, делая у новым корнем поддерева, левым дочерним узлом которого становится х, а бывший левый потомок узла у— правым потомком х.

Чааль Ш. Структуры данныи 1дгт-Кат ~Т, х) (одн'' Кюнт-котята(Т, у) ,>-:-' р а )з В псевдошще процедуры 1.ерт-КОтАте предполагается, что х.гздЫ уь Т.из( и что родитель корневого узла — Т. из). ЬЕРТ-КОТАТЕ (Т, х) 1 у = х.г(дЫ 2 х.гздЫ = у.1е/г // Установка у // Превращение левого поддерева у // в правое поддерево х 3 11 у.1е/1 ф Т.и11 4 у.1е/1.р = х 5 у.р = х.р 6 11х.р == Т. из( 7 Т.гоог = у 8 еЬе11 х == х.р. 1е/1 9 х.р.1е/г = у 10 еЬех.р.пдЫ = у 11 у.1е/( = х // Передача родителя х узлу у // размещение х в качестве левого // дочернего узла у 12 х.р = у На рис. 13.3 показан конкретный пример изменения бинарного дерева поиска про- цедурой ЬЕРТ-КОТАТЕ.

Код процедурьз К1ОНТ-КОТАТЕ симметричен кОду Ьерт- КОтАте. Обе эти процедуры выполняются за время 0(1). При повороте изменя- ются только указатели; все прочие атрибуты сохраняют свое значение. Упражнении 13.2.1 Напишите псевдокод процедуры К1ОНТ-КОТАТЕ. 13.22 Покажите, что в каждом бинарном дереве поиска с и узлами имеется ровно и — 1 возможных поворотов. Рис. 1эрд Операция поворота в бинарном дереве поиска.

Операциа Ьнг~-йотлтл(т,х) преобразует конфигурацию нз двух узлов справа в конфигурацию, показанную слева, пугем изменения юнсгантного количества уююателей. Обратная операциа Кзонт-котята(Т, р) преобразует конфигурацию, показанную слева, в конфигурацию в правой части рисунка. Буквы а, р и т представляют произвольные поддеревзя. Операция поворота сохраняет свойспю бинарнога дерева поиска: ключи в а предшествуют ключу х. лер, который предшествует ключам в 11, которые предшествуют ключу у.

нер, илюрый предшествует ключам в у. 347 Глава 73. Красно-черные деревья лез ( М„.з ".: 1Р'; :1Л".:: 1:.1?.-':; (:.чу) 1лвт-нотяте(Т, яу Рис. 13З. Пример изменения бинарнаго дерева поиска процедурой 1 кгт-нотата(Т, к). Центрирсяанные с%еды исходного н модифицированного деревьев дают одинаковые списки значений 15.2.5 Пусть о, Ь и с представляют собой произвольные узлы в поддеревьях а, р и у соответственно в правом дереве на рис.

13.2. Как изменятся глубины узлов а, Ь и с при левом повороте в узле х? 15.2.4 Покажите, что произвольное бинарное дерево поиска с и узлами может быть преобразовано в любое другое бинарное дерево поиска с и узлами с использованием 0(п) поворотов. (3гказаииег сначала покажите, что и — 1 правых поворотов достаточно для преобразования дерева в правую цепочку.) 15.2.5 * Назовем бинарное дерево поиска Тг иравоиреобрегзуеягеьм в бинарное дерево поиска Тз, если можно получить Тз из Тг путем выполнения последовательности вызовов процедуры В~опт-НОтдтп.

Приведите пример двух деревьев Тг и Тз, таких, что Тг не является правопреобразуемым в Тз. Затем покажите, что если дерево Тг является правопреобразуемым в Тз, то зто преобразование можно выполнить с помощью 0(пз) вызовов процедуры Нзпнт-йотлти. Часть И!. Структуры даннык 348 13.3. Вставка Вставка узла в красно-черное дерево с и узлами может быть выполнена за время 0(18 п). Для вставки узла з в дерево Т мы используем немного модифицированную версию процедуры Ткее-1нзект (см.

раздел 12.3), которая вставляет узел в дерево, как если бы зто было обычное бинарное дерево поиска, а затем окрашивает его в красный цвет. (В упр. 13.3.1 нужно ответить, почему выбран именно красный, а не черный цвет.) Для того чтобы вставка сохраняла красно-черные свойства дерева, после нее вызывается вспомогательная процедура КВ-1нзект-Г!Хир, которая перекрашивает узлы и выполняет повороты.

Вызов КВ-!нзект(Т, г) вставляет в красно-черное дерево Т узел з с уже заполненным атрибутом Ьеу. КВ-1нзект(Т, з) 1 у = Т.п11 2 х = Т.то01 3 згй!!е х ф Т. ти1 4 у =х 5 !1жйеу < х.йеу 6 х = х.1еф 7 еВе х = х.пдЬ! 8 г.р=у 9 1Г у == Т. пз1 10 Т.гоо! = г 11 е!зеИ' ж Ьеу ( у.

Ьеу 12 у.1е7г = г 13 е1ае у.пдЬг = з 14 ж1етс = Т.п11 15 жпдЬ! = Т.п11 16 х.со1ог = кеп 17 ВВ-1нзект-р!хпР(Т, з) Есть четыре отличия между процедурами Ткее-1нзект н КВ-1нзект. Во-первых, все нп. в Ткее-1нзект заменены на Т. п11. Во-вторых, для поддержки корректности структуры дерева в строках 14 и 15 процедуры КВ-1нзект выполняется присвоение Т.

п11 атрибутам ж 1етг и з. пдЬ1. В третьих, в строке 16 мы назначаем узлу з красный цвет. И наконец, в-четвертых, поскольку красный цвет = может вызвать нарушение одного из красно-черных свойств, в строке 17 вызывается вспомогательная процедура КВ-!нзект-Е!Хпр(Т, з), назначение которой— восстановить красно-черные свойства дерева. Гяаеа /3.

Красно-черные деревни 349 КВ-(МБЕКТ-Г!ХОР(Т, е) 1 чеЬПе г.р. со1ог == КЕО 2 !Т г. р == г.р.р. 1е/1 3 д = жр.р,г1д61 4 !1 Д. со10г == КЕП 5 жр.со)ог = В1.АСК 6 д. с01ог = ВЬАСК 7 з.р. р, со!от = КЕП 8 г = г.р.р 9 е!зе !Т л == я.р. лдпя 10 л.р 1! 1,ЕРТ-КОТАТЕ (Т, л) 12 ж1а. со1ог = В1.АСК 13 з.р.р.

со1ог = КЕО !4 К10НТ-КОТАТЕ (Т, л. р. р) 15 еЬе (то же, что и в части 1Ьеп, но с заменой "правого" (пйЬ1) левым" ((ей) и наоборот) 16 Т. гоо1. со1ог = В1,АСК // Случай 1 // Случай 1 // Случай 1 // Случай 1 // Случай 2 // Случай 2 // Случай 3 // Случай 3 // Случай 3 'Случаи 2 и 3 ие являлися вааимоисалючаююими Для того чтобы понять, как работает процедура КВ-!нзект-р1Х13Р, разобьем изучение кода на три части.

Сначала определим, какие из красно-черных свойств нарушаются при вставке узла г и его окраске в красный цвет. Затем рассмотрим назначение цикла угййе в строках 1-!5. После этого изучим каждый из трех случаев', которые встречаются в этом цикле, и посмотрим, каким образом достигается цель в каждом из них. На рис. 13.4 показан пример работы процедуры КВ-!ВЯект-г1х13Р. Какие из красно-черных свойств могут быть нарушены перед вызовом К.В!Нзект-Г1Х13Р? Свойство 1, определенно, выполняется (как и свойство 3), так как оба дочерних узла вставляемого узла являются ограничителями Т. пй. Свойство 5, согласно которому для каждого узла все пути от него до листьев, являющихся потомками данного узла, содержат одно и то же количество черных узлов, также остается в силе, поскольку узел я замещает (черный) ограничитель, будучи при зтои красным и имея черные дочерние узлы.

Таким образом, может нарушаться только свойство 2, которое требует, чтобы корень красно-черного дерева был черным, и свойство 4, согласно которому красный узел не может иметь красного потомка. Оба нарушения возможны в силу того, что узел г после вставки окрашивается в красный цвет. Свойство 2 оказывается нарушенным, если узел л становится корнем, а свойство 4 — если родительский по отношению к з узел является красным. На рис. 13.4, (а) показано нарушение свойства 4 после вставки узла г. Цикл е'Ьйе в строках 1 — 15 сохраняет в начале каждой итерации цикла следующий инвариант, состоящий из трех частей. зуб Часть!П.

Характеристики

Список файлов книги

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6510
Авторов
на СтудИзбе
302
Средний доход
с одного платного файла
Обучение Подробнее