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

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

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

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

10.1.4 Перепишите процедуры ЕН00ЕиЕ и 13ЕОНЕОЕ так, чтобы они корректно обнаруживали опустошение и переполнение очереди. 10.1.5 При работе со стеюм элементы можно добавлять в него и извлекать из него только с одного конца. Очередь позволяет добавлять элементы с одного конца, а извлекать — с другого. Очередь с двусторонним доступом, или дек (белие), предоставляет возможность производить вставку и удаление с обоих юнцов. Напишите четыре процедуры, выполняющиеся в течение времени 0(1) и позволяющие вставлять и удалять элементы с обоих концов дека, реализованного с помощью массива.

гбб Часть Дб Структуры данник 1О.1.б Покажите, как реализовать очередь с помощью двух стеков. Проанализируйте время работы операций, которые выполняются с ее элементами. 16! 1. 7 Покажите, как реализовать стек с помощью двух очередей. Проанализируйте время работы операций, которые выполюпотся с его элементами. 10.2. Связанные списки Связанный список (!пэ)(еб йз() — это структура данных, в которой обьекты расположены в линейном порядке. Однако, в отличие от массива, в котором этот порядок определяется индексамн, порядок в связанном списке определяется указателями на каждый объект.

Связанные списки обеспечивают простое и гибкое представление динамических множеств и поддерживают все операции (хотя и не всегда достаточно эффективно), перечисленные на с. 261. Как показано на рис. 10.3, каждый элемент г)аажды связанного списка (бопЫу 1пэ)(еб йз() Х, — это обьект с одним атрибутом )геу и двумя атрибутами-утщзателями: пехг (следующий) и ргеп (предыдущий).

Этот объект может также содержать другие сопутствующие данные. Для заданного элемента списка х указатель х. пех( указывает на следующий элемент связанного списка, а указатель х. рто†на предыдущий. Если х. ргеп = ы(~., у элемента х нет предшественника, и, следовательно, он является первым, т.е.

гпловиым в списке. Если х. пехг = )чп., то у элемента х нет последующего, а значит, он является последним„т.е. хаослговым в списке. Атрибут 1,. Ьеа(1 указывает на первый элемент списка. Если Ь. Ьеа(( = )41~., то список пуст. рть аеу леи l (а) ь.ьеад — — — -ь(хг19гт-':,"г:. "":~1Я',:,';=. ~',1:.4 ~':~ " (,'1-.1' ~,.Ф'.( (Е) Ь. бенд - — — — ~',Р~ДЙ~-';,.~.„..~. Г9~' "~. '. ) ьг)за~~ ',,) ~ь)4 ~")г) ~„. ~Л~~) (и и ь д (,кфГ~ . ~"Дъ~~ ' ""„:','"~)б~~- (' 1);:,(у!' Ряс. 19.3.

(в) Дввкды с ля залпы й список Ь, предсгавляющвй дл нам пчес кое мне тесгво (1,4,9, 16). Калспщ элемевт списка является обьектом с агрлбугамв, представляющими ключ я указатели (покаэаллые стрелками) на следующий в предьщущлй объекты. Атрибут пезе хвостового в атрвбуг ргее головного элементов равны нп„чго показано дпагопальпой косой чертой. Атрибут б. беата указывает па голову списка. (6) После выполвепвя $лзт-1нзякт(уьх), где х. ассу = 25, связанный сплсок в качестве головного элемента получает новый объекг с ключом 25.

Эгот новый обьекг указывает па старый головкой элемент с ключом 9. (в) Результат последующего вызова Ызт-пььятя(Ь, х), где х указывает па обьекг с ключом 4. 2б9 Глава !д Элементарные етрунтуры данные Списки могут быть разных видов. Список может быть однократно или дважды связанным, отсортированным или неотсортированным, кольцевым или некольцеяым. Если список однократно связанный (однонаправленный) (з(пя!у!1п)геб), то указатель ргес в его элементах отсутствует.

Если список отсортировав (яопе!1), то его линейный порядок соответствует линейному порядку его ключей; в этом случае минимальный элемент находится в голове списка, а максимальный — в его хвосте. Если же список не отсортирован, то его элементы могут располагаться в произвольном порядке. Если список тзаьцевой (с(гсц1аг 1Ы), то указатель рген его головного элемента указывает на его хвост, а указатель пех! хвостового элемента — на головной элемент. Такой список можно рассматривать как замкнутый в виде юльца набор элементов.

В оставшейся части раздела предполагается, что списки, с которыми нам придется работать, — неотсортированные дважды связанные. Поиск в связанном списке Вызов Ьгзт-Зелксп(Ь,Й) находит в списке Ь первый элемент с ключом Ь путем простого линейного поиска и возвращает указатель на найденный элемент. Если элемент с ключом Ь в списке отсутствует, возвращается значение нп.. Процедура Ьгят-Белксп(Ь,4), вызванная для связанного списка, изображенного на рис.10.3,(а), возвращает указатель на третий элемент, а вызов Ь|зт-Белцсп(Х„7) — значение !чп..

Ь!Бт-Белксн(Ыс) 1 х = Ь.Ьеав( 2 ия11е х зь !чп. и х. Ьеу ф Ь 3 х = х. пех! 4 гец!гп х Поиск с помощью процедуры Ьгзт-Белксп в списке, состоящем из п элементов, в наихудшем случае выполняется за время 9(п), посюльку может понадобиться просмотреть весь список.

Вставка в связанный список Если имеется элемент х, атрибут Ьеу которого предварительно установлен, то процедура Ьгзт-1!чзецт вставляет элемент х в начало списка (рис. 10.3, (6)). Ь!Бт-1мзект (л', х) 1 х.пех! = Ь.Ьеав( 2 ПЬ.Ьеав( ~ !чп. 3 Ь.Ьеав(.ргее = х 4 Ь.Ьеав( = х 5 х.ргее = ~а. Часть ДЕ Структуры даьтыь 270 (Вспомните, что наша запись атрибутов допускает каскадирование, так что Ь.Ьеаа'.ргее означает атрибут ргес объекта, на который указывает атрибут Ь.

Ьеаг).) Время работы Ь1зт-1ызект со списком из и элементов равно 0(1). Удаление из связанного списка Представленная ниже процедура 1.1БТ-)ЗЕВАЕТЕ удаляет элемент х из связанного списка Х,. В процедуру необходимо передать указатель на элемент х, после чего она удаляет х из списка путем обновления указателей. Чтобы удалить элемент с заданным ключом, необходимо сначала вызвать процедуру 1.1зт-белксн для получения указателя на элемент.

11зт-Рн.ете (1, х) 1 !1х.ргее ЗЬ 1ЧП. 2 х.ртсб.пех! = х.пех! 3 е!яе Ь,Ьеаа' = х.веха 4 !Гх.пех! ~ м~. 5 х.пех1.ртес = х.ргее На рис.10.3,(в) показано, как элемент удаляется из связанного списка. Время работы процедуры 11ЗТ-РЕЕЕТЕ равно 0(1), но если требуется удалить элемент с заданным ключом, то в наихудшем случае требуется время О(п), поскольку сначала нужно вызвать процедуру 11зт-Беяксн для поиска удаляемого элемента. Ограничители Код процедуры 11зт-Рн.ете мог бы быть проще, если бы можно было игнорировать граничные условия в голове н хвосте списка.

1.1БТ-1ЗЕЕЕТЕ'(ь', Х) 1 х.ргее,пех! = х.пех1 2 х.пех1.ргее = х.ргее Ограничигнель(зепг!пе!) — это фиктивный объект, упрощающий учет граничных условий. Например, предположим, что в списке 2 предусмотрен объект 2.п11, представляющий значение 1чн., но при этом содержаьций все атрибуты, которые имеются у других элементов. Когда в коде происходит обращение к значению мп., оно заменяется обращением к ограничителю 2. пй. Как показано на рис.

10.4, наличие ограничителя преобразует обычный дважды связанный список в циклический дважды связанный снисок с ограничителем. В таком списке ограничитель г . пй расположен между головой и хвостом. Атрибут 2. пй. пех! указывает на голову списка, а атрибут 2. пй.ргее — на его хвост. Аналогично атрибуты пех! хвостового элемента и ргес головного элемента указывают на элемент 1,. пй.

Поскольку атрибут 2. Ы, пех! указывает на голову списка„можно упразднить атрибут 2.Ьеаа, заменив ссылки на него ссылками на Ь.п11.пех1. Как видно на рис. 10.4,(а), пустой список содержит толью ограничитель, и как 2. пй. пех1, так и й. пй, ртее указывают на 2,.

п11. 271 Глава 1П Зяенентарныв структуры данных (а) 1,. ии— ьт)~:"--в~~~я: ьо. )) 1:.) ;.~е(."."~~~в:,=,.; )„:Твт,:.",.:;Ятй()„ ьз 1,. и — '-)=:;.ЯЖ':-т е:.',-'1.'~~3-~~-.'-'т)(ЕГ:: -$:-."Л4"Г'3 ) Рве. 1ЕА. Циклический дважды связанный список с отрвничвтедями. (лрвничитедь 1. пп находится мткду головой и хвостом. Атрибут Е.Леала больше не нужен, посюпьку доссуп к пшове шпека пояучттся с помошьш Ь.

пи. пея), (в) Пустой список. (6) Свшвиный список с рис. 10.3, (я), с ключом 9 в голове и кявчом 1 в хвосте списка. (в) Список после выполнения $лзт-1мзвкт'(Ь, к), где а.Лез = 25. Новый обьевт становится годовой списка. (г) Список после удаления обьектя с кмочом 1. Новым хвостом становится объект с ключом 4. Код 1.)зт-йедксн остается прежним, но обращения к нп. и Б.

Ьеао' изменены, квк указано выше. Б1БТ-БЕАКСН'(2, )с) 1 х = Ь.пт(.пех( 2 тчййе х ф Ь. пй и х. Ле)) ф й 3 х = х.пех( 4 ге(пгп х Удаление элемента нз списка производится с помощью уже описанной двустрочной процедуры 1.1Бт-()Бьете'. Для вставки элемента в список используется приведенная ниже процедура. (ЛБТ-1ХБЕКТ (А,х) 1 х. пех( = 1 . пй. пех( 2 Й.пй.пех(.ргеи = х 3 1..пй.пех( = х 4 х.ргеи = с . пй Действие процедур ьдзт-1хзект' н 1.(зт-1)ееете' на список-образец показано на рис. 10.4.

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

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

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