Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Data Structures and Algorithms in C++ 2e (На ру...docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
2.37 Mб
Скачать

5.4. Упражнения

5.4 Упражнения

Для помощи с упражнениями, пожалуйста, посетите веб-сайт, www.wiley.com/college/goodrich. <www.wiley.com/college/goodrich>

Укрепление

223

R-5.1 Опишите, как осуществить ограниченный способностью стек, который использует func-

tions ограниченного способностью deque, чтобы выполнить функции стека ADT способами, которые не бросают исключения, когда мы пытаемся выполнить толчок на полном стеке или популярность на пустом стеке.

R-5.2 Опишите, как осуществить ограниченную способностью очередь, которая использует func-

tions ограниченного способностью deque, чтобы выполнить функции очереди ADT способами, которые не бросают исключения, когда мы пытаемся выполнить ставить в очередь на полной очереди или dequeue на пустой очереди.

R-5.3 предположим первоначально пустой стек S выполнил в общей сложности 25 толчков oper-

ations, 12 главных операций и 10 популярных операций, 3 из которых произвели исключение StackEmpty, которое было поймано и проигнорировано. Каков текущий размер S?

R-5.4 Если мы осуществили стек S от предыдущей проблемы со множеством, как

описанный в этой главе, тогда какова текущая стоимость главной членской переменной?

R-5.5 Опишите продукцию следующего ряда операций по стеку: продвиньтесь (5),

продвиньтесь (3), популярность (), продвиньтесь (2), продвиньтесь (8), популярность (), популярность (), продвиньтесь (9), продвиньтесь (1), популярность (), продвиньтесь (7), продвиньтесь (6), популярность (), популярность (), продвиньтесь (4), популярность (), популярность ().

R-5.6 Дайте рекурсивную функцию для удаления всех элементов в стеке. R-5.7 Измените стек внедрение ADT Раздела 5.1.5 как полностью универсальное

класс (с помощью шаблонов).

R-5.8 Дайте точное и полное определение понятия соответствия для

группировка символов в арифметическом выражении.

R-5.9 Опишите продукцию для следующей последовательности операций очереди:

поставьте в очередь (5), поставьте в очередь (3), dequeue (), поставьте в очередь (2), поставьте в очередь (8), dequeue (), dequeue (), поставьте в очередь (9), поставьте в очередь (1), dequeue (), поставьте в очередь (7), поставьте в очередь (6), dequeue (), dequeue (), поставьте в очередь (4), dequeue (), dequeue ().

R-5.10 Опишите продукцию для следующей последовательности deque операций:

insertFront (3), insertBack (8), insertBack (9), insertFront (5), removeFront (), eraseBack (), сначала (), insertBack (7), removeFront (), в последний раз (), eraseBack ().

224

Глава 5. Стеки, очереди и Deques

R-5.11 предположим у Вас есть deque D содержащий числа (1, 2, 3, 4, 5, 6, 7, 8),

в этом заказе. Предположим далее, что у Вас есть первоначально пустая очередь Q. Дайте псевдокодовое описание функции, которая использует только D и Q (и никакие другие переменные или объекты) и приводит к D хранение элементов (1, 2, 3, 5, 4, 6, 7, 8), в этом заказе.

R-5.12 Повторите предыдущую проблему, используя deque D и первоначально пустой

стек S.

Креативность

C-5.1 Объясните, как Вы можете осуществить все функции deque ADT использование

два стека.

C-5.2 предположим у Вас есть стек S содержащий n элементы и очередь Q, который является

первоначально пустой. Опишите, как Вы можете использовать Q, чтобы просмотреть S, чтобы видеть, содержит ли это определенный элемент x с дополнительным ограничением, что Ваш алгоритм должен возвратить элементы назад к S в их первоначальном заказе. Вы не можете использовать множество или связанный список - только S и Q и постоянное число справочных переменных.

C-5.3 Дайте псевдокодовое описание для основанного на множестве внедрения

deque ADT. Какова продолжительность для каждой операции?

C-5.4 предположим Элис выбрал три отличных целых числа и разместил их в a

сложите S в случайном заказе. Напишите короткую, прямолинейную часть псевдокодекса (без петель или рекурсии), который использует только одно сравнение и только одну переменную x, все же гарантирует с вероятностью 2/3, что в конце этого кодекса переменная x сохранит самое большое из трех целых чисел Элис. Обсудите, почему Ваш метод правилен.

C-5.5 Опишите, как осуществить стек ADT использование двух очередей. Что

продолжительность толчка и популярности функционирует в этом случае?

C-5.6 предположим у нас есть n n двумерное множество, что мы хотим использовать для

целые числа магазина, но мы не хотим тратить O (n2) работа, чтобы инициализировать его к

весь 0, потому что мы уже знаем, что только собираемся использовать до n этих клеток в нашем алгоритме, который самом управляет в O (n) временем (не подсчитывающий время, чтобы инициализировать A). Покажите, как использовать основанный на множестве стек S хранящий (я, j, k), целое число утраивается, чтобы позволить нам использовать множество, не инициализируя его и все еще осуществлять наш алгоритм в O (n) время, даже при том, что начальные значения в клетках A могли бы быть всем мусором.

C-5.7 Опишите нерекурсивный алгоритм для перечисления всех перестановок

числа1, 2..., n\.

C-5.8 Постфиксируйте примечание, однозначный способ написать арифметику expres-

Сьон без круглых скобок. Это определено так, чтобы, если» (exp1)(exp2)» a

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