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

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

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

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

На практике мы не всегда можем гарантировать случайность построения бинарного дерева поиска, однако имеются версии деревьев, в которых гарантируется хорошее время работы в наихудшем случае. В главе 13 будет представлена одна из таких версий, а именно — красно-черные деревья, высота которых составляет 0(18п). В главе 18 вы познакомитесь с В-деревьями, которые особенно хорошо подходят для баз данных, храшпцихся во вторичной памяти с произвольным доступом (на дисках). После знакомства с основными свойствами деревьев поиска в последующих разделах главы будет показано, как осуществляется обход дерева поиска для вывода его элементов в отсортированном порядке, как выполняется поиск минимального и максимального элементов, а также предшествующего данному элементу и следующего за ним, как вставлять элементы в дерево поиска и удалять их оттуда.

Основные математические свойства деревьев описаны в приложении Б. 12.1. Что такое бинарное дерево поиска Как следует из названия, бинарное дерево поиска, в первую очередь, является бинарным деревом, как показано на рис. 12.1. Такое дерево может быть представлено с помощью связанной структуры данных, в которой каждый узел является Часть гдзь. Смруяевры долныз 320 (6) (а) Рис.

12.1. Бинарные деревья поиска. Длл любого узла х ключи в левом поддереве х не превышают х.кер, а ключи в правом поддереве х — не меньше х. (ит(. Одно и то же множество значений могут представлять различные бинарные деревья поиска. Время работы в наихудшем случае для большинства операций в дереве поиска пропорционально его высоте. (а) Бинарное дерево поиска с б узлами высотой 2. (б) Менее эффективное бинарное дерево поиска с высотой 4, содержащее те же узлы. объектом. В дополнение к атрибуту ключа lсеу и сопутствующим данным каждый узел содержит атрибуты 1еу(, пдйг и р, которые указывают на левый и правый дочерние узлы и на родительский узап соответственно.

Если дочерний или родительский узел отсутствуют, соответствующее поле содержит значение нп.. Единственный узел, указатель р которого равен ып., — зто корневой узел дерева. Ключи в бинарном дереве поиска хранятся таким образом, чтобы в любой момент удовлетворять следующему саойстау бинарного дерева поиска. Пусть х представляет собой узел бинарного дерева поиска. Если у является узлом в левом поддереве х, то у.

Йеу < х.)сеу. Если у является узлом в правом поддереве х, то у. )сеу > х. )сеу. Таким образом, на рис. 12.1, (а) ключом корня является значение 6, ключи 2, 5 и 5 в его левом поддереве не превосходят значение 6, а ключи 7 и 8 в его правом поддереве не меньше 6. То же свойспю выполняется для каждого узла дерева. Например, ключ 5 в левом дочернем по отношению к корню узле не меньше ключа 2 в его левом поддереве и не больше ключа 5 в его правом поддереве. Свойство бинарного дерева поиска позволяет вывести все ключи, находящиеся в дереве, в отсортированном порядке с помощью простого рекурсивного алгоритма, называемого центрироааннвзм (симметричньгм) обходом дерева ((пот()ег нее па))(). Этот алгоритм получил данное название в связи с тем, что ключ в корне полдерева выводится между значениями ключей левого поддерева и правого поддерева. Имеются и другие способы обхода, а именно — ойтод и прямом порядке (ргеоп1ег (гее тгайс), при котором сначала выводится корень, а затем — значения левого и правого поддеревьев, и обход в обратном порядке (роя1огбег ггее тсайс).

когда первыми выводятся значения левого и правого поддеревьев, а уже затем— корня. Центрированный обход бинарного дерева поиска Т реализуется вызовом процедуры 1ЫОй ОБК-ТКББ- тем К(Т. гоо(). Гаева БК Бинарные деревья наивна !ХОКОЕК-ТКЕЕ-%САЬК(х) 1 !1 х ф ньь 2 !МОкпек-Ткее-%Аьк(х, 1еТс) 3 рпп! х, /сер 4 1иокпек-Ткее-%Аьк(х.

ядМ) В качестве примера центрированный обход деревьев, показанных на рис. 12.1, выводит ключи в порядке 2, 5, 5, 6, 7, 8. Корректность описанного алгоритма следует по индукции непосредственно из свойства бинарного дерева поиска. Для обхода дерева с п узлами требуется время 9(п), поскольку после начального вызова процедура вызывается ровно два раза для кахсдого узла дерева: один раз — для его левого дочернего узла и один раз — для правого.

Приведенная далее теорема дает нам более формальное доказательство линейности времени центрированного обхода дерева. Теорема Л.1 Если х — корень поддерева с п узлами, то время работы вызова 1иокпек-Ткее%Аьк(х) составляет с!(п). Доказаавельсавво. Обозначим через Т(п) время, необходимое процедуре 1иокпек-Ткее-%Аьк в случае вызова с параметром, представляюшим собой корень дерева с п узлами. Поскольку процедура 1иокпек-Ткее-%Аьк посещает все п узлов поддерева, мы имеем Т(п) = П(п).

Остается показать, что Т(п) = 0(п). Поскольку 1нокпек-Ткее-%Аьк требует маленького, фиксированного количества времени для работы с пустым деревом (для выполнения проверки х ф и!ь), мы имеем Т(О) = с для некоторой константы с > О. В случае п > О будем считать, что процедура 1!чокпек-Ткее-%Аьк вызывается в узле х один раз для левого поддерева с к узлами, а второй — для правого поддерева с п — )с — 1 узлами. Таким образом, время работы процедуры !хокэек-ткее-зкАьк(х) ограничено т(п) < т(к) + т(п — к — 1) + с( для некоторой константы с( > О, которая отражает время, необходимое для выполнения тела процедуры без учета рекурсивных вызовов.

Воспользуемся методом подстановки, чтобы показать, что Т(п) = 0(п), путем доказательства того, что Т(п) < (с+ег)и+с. Для п = О мы имеем (с+с() О+с = с = Т(0). Для п > О мы имеем Т(п) < Т(к) + Т(п — )с — 1) + с( = ((с + с))М + с) + ((с + с() (п — lс — 1) + с) + Н = (с + Н)п + с — (с + Н) + с + с! = (с + сс)п + с, что и завершает доказательство. и зьк згзе Часть Ш. Структуры данныс 377 Упражнения 12.1.1 Начертите бинарные деревья поиска высотой 2, 3, 4, 5 и 6 для множества ключей 11, 4, 5, 10, 16, 17, 21) . 12.1.2 В чем заключается отличие свойства бинарного дерева поиска от свойства неубывающей пирамиды (с.

181)? Можно ли использовать свойство неубывающей пирамиды для вывода ключей дерева с и узлами в отсортированном порядке за время 0(п)? Поясните свой ответ. 12.1.3 Разработайте нерекурсивный алгоритм, осуществляющий обход дерева в симметричном порядке. (Указанвес имеется простое решение, которое использует вспомогательный стек, и более сложное, но более элегантное решение, которое обходится без стека, но предполагает возможность проверки равенства двух указателей.) 12.1.4 Разработайте рекурсивный алгоритм, который осуществляет прямой и обратный обходы дерева с и узлами за время 9(п). 12.1.5 Покажите, что, поскольку сортировка и элементов требует в модели сортировки сравнением в худшем случае времени П(п18 и), любой основанный на сравнениях алгоритм построения бинарного дерева поиска из произвольного списка, содержащего и элементов, также требует в худшем случае времени П(п 18 п).

12.2. Работа с бинарным деревом поиска Наиболее частой операцией, выполняемой с бинарным деревом поиска, является поиск в нем определенного ключа. Помимо операции Бпянсц, бинарные деревья поиска поддерживают такие запросы, как Мппмим, Млх1мим, Бисснззок и Ркнэнснззок. В данном разделе мы рассмотрим все эти операции и покажем, что все они могут быть выполнены в бинарном дереве поиска высотой Ь за время 0(Ь).

Поиск Для поиска узла с заданным ключом в бинарном дереве поиска используется приведенная ниже процедура Ткнн-ЯнАксн, которая получает в качестве параметров указатель на корень бинарного дерева и ключ к, а возвращает указатель на узел с этим ключом (если таковой существует; в противном случае возвращается значение мп.). Згз Глава »г.

Бинарные деревья яошка Рис. 12.2. Запросы к бинарному дереву поиска. Ддя поиска ключа 13 необходимо пройти путь 16 -+ 6 -+ 7 -+ 13 от корня. Минимальным в дереве лввяегса ключ 2, который находится при следовании по указателям »ег» от корня. Максимальный ключ 20 достигается при следовании от сория по указателям г»ра».

Последуюшим узлом после узла с ключом Ш является узел с ключом 17, посмюьку это минимальный юпоч в правом поддереве узла 16. Уюл с юпочом 13 не имеет правого по»Шарова, так что следуалпим за ним является наименьший предок, левый наследник юторого также явлаегся преююм данного узла. В нашем случае зто узел с юлочом 16. Ткее-беАксн(х, »с) 1 1» х == ХП. или Й == х. »сеу 2 ге$нги х 3 И /с ( х.

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

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

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