М.Э. Абрамян - Programming Taskbook, страница 25

PDF-файл М.Э. Абрамян - Programming Taskbook, страница 25 Конструирование компиляторов (53115): Книга - 7 семестрМ.Э. Абрамян - Programming Taskbook: Конструирование компиляторов - PDF, страница 25 (53115) - СтудИзба2019-09-18СтудИзба

Описание файла

PDF-файл из архива "М.Э. Абрамян - Programming Taskbook", который расположен в категории "". Всё это находится в предмете "конструирование компиляторов" из 7 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .

Просмотр PDF-файла онлайн

Текст 25 страницы из PDF

Вывести также адрес новой вершины стека. После извлеченияэлементов из стека освобождать память, которую они занимали.Dynamic7. Дан указатель P1 на вершину стека (если стек пуст, то P1 = nil).Извлечь из стека все элементы и вывести их значения. Вывести также количество извлеченных элементов N (для пустого стека вывести 0). Послеизвлечения элементов из стека освобождать память, которую они занимали.Dynamic8◦ . Даны указатели P1 и P2 на вершины двух непустых стеков. Переместить все элементы из первого стека во второй (в результате элементыпервого стека будут располагаться во втором стеке в порядке, обратномисходному) и вывести адрес новой вершины второго стека. Операции выделения и освобождения памяти не использовать.Dynamic9◦ . Даны указатели P1 и P2 на вершины двух непустых стеков.

Перемещать элементы из первого стека во второй, пока значение вершиныпервого стека не станет четным (перемещенные элементы первого стекабудут располагаться во втором стеке в порядке, обратном исходному). Если в первом стеке нет элементов с четными значениями, то переместитьиз первого стека во второй все элементы. Вывести адреса новых вершинпервого и второго стека (если первый стек окажется пустым, то вывестидля него константу nil). Операции выделения и освобождения памяти неиспользовать.Dynamic10◦ .

Дан указатель P1 на вершину непустого стека. Создать два новых стека, переместив в первый из них все элементы исходного стекас четными значениями, а во второй — с нечетными (элементы в новыхстеках будут располагаться в порядке, обратном исходному; один из этихстеков может оказаться пустым). Вывести адреса вершин полученных стеков (для пустого стека вывести nil). Операции выделения и освобожденияпамяти не использовать.Dynamic11◦ . Дан указатель P1 на вершину стека (если стек пуст, то P1 = nil).Также дано число N (> 0) и набор из N чисел. Описать тип TStack —запись с одним полем Top типа PNode (поле указывает на вершину стека)— и процедуру Push(S, D), которая добавляет в стек S новый элементсо значением D (S — входной и выходной параметр типа TStack, D —входной параметр целого типа).

С помощью процедуры Push добавитьв исходный стек данный набор чисел (последнее число будет вершинойстека) и вывести адрес новой вершины стека.Динамические структуры данных119Dynamic12◦ . Дан указатель P1 на вершину стека, содержащего не менее пятиэлементов. Используя тип TStack (см. задание Dynamic11), описать функцию Pop(S) целого типа, которая извлекает из стека S первый (верхний)элемент, возвращает его значение и освобождает память, которую занимализвлеченный элемент (S — входной и выходной параметр типа TStack). Спомощью функции Pop извлечь из исходного стека пять элементов и вывести их значения. Вывести также указатель на новую вершину стека (еслирезультирующий стек окажется пустым, то этот указатель должен бытьравен nil).Dynamic13.

Дан указатель P1 на вершину стека. Используя тип TStack (см.задание Dynamic11), описать функции StackIsEmpty(S) логического типа(возвращает TRUE, если стек S пуст, и FALSE в противном случае) и Peek(S)целого типа (возвращает значение вершины непустого стека S, не удаляяее из стека). В обеих функциях переменная S является входным параметром типа TStack. С помощью этих функций, а также функции Pop иззадания Dynamic12, извлечь из исходного стека пять элементов (или всесодержащиеся в нем элементы, если их менее пяти) и вывести их значения.

Вывести также значение функции StackIsEmpty для результирующегостека и, если результирующий стек не является пустым, значение и адресего новой вершины.ОчередьВ заданиях Dynamic14–Dynamic28 структура «очередь» (queue) моделируется цепочкой связанных узлов-записей типа TNode (см. задание Dynamic2).Поле Next последнего элемента цепочки равно nil. Началом очереди («головой», head) считается первый элемент цепочки, концом («хвостом», tail) — еепоследний элемент.

Для возможности быстрого добавления в конец очерединового элемента удобно хранить, помимо указателя на начало очереди, такжеи указатель на ее конец. В случае пустой очереди указатели на ее начало иконец полагаются равными nil. Как и для стека, значением элемента очередисчитается значение его поля Data.Dynamic14. Дан набор из 10 чисел. Создать очередь, содержащую данныечисла в указанном порядке (первое число будет размещаться в началеочереди, последнее — в конце), и вывести указатели P1 и P2 на начало иконец очереди.120М.

Э. Абрамян. Электронный задачник Programming Taskbook 4.6Dynamic15. Дан набор из 10 чисел. Создать две очереди: первая должна содержать числа из исходного набора с нечетными номерами (1, 3, . . ., 9), авторая — с четными (2, 4, . . ., 10); порядок чисел в каждой очереди должен совпадать с порядком чисел в исходном наборе. Вывести указателина начало и конец первой, а затем второй очереди.Dynamic16. Дан набор из 10 чисел. Создать две очереди: первая должна содержать все нечетные, а вторая — все четные числа из исходного набора(порядок чисел в каждой очереди должен совпадать с порядком чисел висходном наборе).

Вывести указатели на начало и конец первой, а затемвторой очереди (одна из очередей может оказаться пустой; в этом случаевывести для нее две константы nil).Dynamic17. Дано число D и указатели P1 и P2 на начало и конец очереди(если очередь является пустой, то P1 = P2 = nil). Добавить элемент созначением D в конец очереди и вывести новые адреса начала и концаочереди.Dynamic18. Дано число D и указатели P1 и P2 на начало и конец очереди,содержащей не менее двух элементов. Добавить элемент со значением D вконец очереди и извлечь из очереди первый (начальный) элемент.

Вывестизначение извлеченного элемента и новые адреса начала и конца очереди.После извлечения элемента из очереди освободить память, занимаемуюэтим элементом.Dynamic19. Дано число N (> 0) и указатели P1 и P2 на начало и конец непустой очереди. Извлечь из очереди N начальных элементов и вывести ихзначения (если очередь содержит менее N элементов, то извлечь все ееэлементы). Вывести также новые адреса начала и конца очереди (дляпустой очереди дважды вывести nil). После извлечения элементов из очереди освобождать память, которую они занимали.Dynamic20. Даны указатели P1 и P2 на начало и конец непустой очереди.

Извлекать из очереди элементы, пока значение начального элемента очередине станет четным, и выводить значения извлеченных элементов (еслиочередь не содержит элементов с четными значениями, то извлечь всеее элементы). Вывести также новые адреса начала и конца очереди (дляпустой очереди дважды вывести nil). После извлечения элементов из очереди освобождать память, которую они занимали.Dynamic21. Даны две очереди; адреса начала и конца первой равны P1 и P2 ,а второй — P3 и P4 (если очередь является пустой, то соответствующиеДинамические структуры данных121адреса равны nil). Переместить все элементы первой очереди (в порядкеот начала к концу) в конец второй очереди и вывести новые адреса началаи конца второй очереди. Операции выделения и освобождения памяти неиспользовать.Dynamic22.

Дано число N (> 0) и две непустые очереди; адреса начала иконца первой равны P1 и P2 , а второй — P3 и P4 . Переместить N начальных элементов первой очереди в конец второй очереди. Если перваяочередь содержит менее N элементов, то переместить из первой очередиво вторую все элементы. Вывести новые адреса начала и конца первой, азатем второй очереди (для пустой очереди дважды вывести nil). Операциивыделения и освобождения памяти не использовать.Dynamic23. Даны две непустые очереди; адреса начала и конца первой равны P1 и P2 , а второй — P3 и P4 .

Перемещать элементы из начала первойочереди в конец второй, пока значение начального элемента первой очереди не станет четным (если первая очередь не содержит четных элементов,то переместить из первой очереди во вторую все элементы). Вывести новые адреса начала и конца первой, а затем второй очереди (для пустойочереди дважды вывести nil). Операции выделения и освобождения памяти не использовать.Dynamic24. Даны две непустые очереди; адреса начала и конца первой равны P1 и P2 , а второй — P3 и P4 . Очереди содержат одинаковое количествоэлементов.

Объединить очереди в одну, в которой элементы исходных очередей чередуются (начиная с первого элемента первой очереди). Вывестиуказатели на начало и конец полученной очереди. Операции выделения иосвобождения памяти не использовать.Dynamic25◦ . Даны две непустые очереди; адреса начала и конца первой равны P1 и P2 , а второй — P3 и P4 . Элементы каждой из очередей упорядоченыпо возрастанию (в направлении от начала очереди к концу). Объединитьочереди в одну с сохранением упорядоченности элементов. Вывести указатели на начало и конец полученной очереди.

Операции выделения иосвобождения памяти не использовать, поля Data не изменять.Dynamic26. Даны указатели P1 и P2 на начало и конец очереди (если очередьявляется пустой, то P1 = P2 = nil). Также дано число N (> 0) и набориз N чисел. Описать тип TQueue — запись с двумя полями Head и Tailтипа PNode (поля указывают на начало и конец очереди) — и процедуруEnqueue(Q, D), которая добавляет в конец очереди Q новый элемент со122М. Э. Абрамян. Электронный задачник Programming Taskbook 4.6значением D (Q — входной и выходной параметр типа TQueue, D — входной параметр целого типа).

С помощью процедуры Enqueue добавить висходную очередь данный набор чисел и вывести новые адреса ее началаи конца.Dynamic27. Даны указатели P1 и P2 на начало и конец очереди, содержащейне менее пяти элементов. Используя тип TQueue (см. задание Dynamic26),описать функцию Dequeue(Q) целого типа, которая извлекает из очередипервый (начальный) элемент, возвращает его значение и освобождает память, занимаемую извлеченным элементом (Q — входной и выходной параметр типа TQueue). С помощью функции Dequeue извлечь из исходнойочереди пять начальных элементов и вывести их значения. Вывести такжеадреса начала и конца результирующей очереди (если очередь окажетсяпустой, то эти адреса должны быть равны nil).Dynamic28. Даны указатели P1 и P2 на начало и конец очереди. Используятип TQueue (см. задание Dynamic26), описать функцию QueueIsEmpty(Q)логического типа, которая возвращает TRUE, если очередь Q пуста, и FALSEв противном случае (Q — входной параметр типа TQueue).

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