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

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

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

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

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

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

задание Dynamic59) процедуру InsertBefore(D), котораявставляет новый элемент со значением D перед текущим элементом списка (D — входной параметр целого типа). Вставленный элемент становитсятекущим. С помощью метода InsertBefore вставить пять данных чиселв исходный список и вывести ссылки на первый, последний и текущийэлементы полученного списка.Dynamic62. Даны ссылки A1 , A2 и A3 на первый, последний и текущий элементы непустого двусвязного списка. Также даны пять чисел. Включитьв класс IntList (см. задание Dynamic59) процедуру InsertAfter(D), котораявставляет новый элемент со значением D после текущего элемента списка (D — входной параметр целого типа). Вставленный элемент становитсятекущим.

С помощью метода InsertAfter вставить пять данных чисел висходный список и вывести ссылки на первый, последний и текущийэлементы полученного списка.Dynamic63◦ . Даны ссылки A1 , A2 и A3 на первый, последний и текущий элементы непустого двусвязного списка. Включить в класс IntList (см. задание Dynamic59) процедуры ToFirst (делает текущим первый элементсписка), ToNext (делает текущим в списке следующий элемент, если онсуществует), SetData(D) (присваивает текущему элементу списка значение D целого типа), а также функцию IsLast логического типа (возвращаетTRUE, если текущий элемент списка является его последним элементом,и FALSE в противном случае).

Методы ToFirst, ToNext и IsLast не имеютпараметров; параметр D метода SetData является входным параметромцелого типа. С помощью данных методов присвоить нулевые значенияэлементам исходного списка с нечетными номерами и вывести количество элементов в списке, а также ссылки на первый, последний и текущийэлементы преобразованного списка.Dynamic64. Даны ссылки A1 , A2 и A3 на первый, последний и текущий элементы непустого двусвязного списка.

Включить в класс IntList (см. заданиеDynamic59) процедуры ToLast (делает текущим последний элемент списка), ToPrev (делает текущим в списке предыдущий элемент, если он существует) и функции GetData целого типа (возвращает значение текущегоэлемента списка), IsFirst логического типа (возвращает TRUE, если текущий элемент списка является его первым элементом, и FALSE в противномслучае).

Данные методы не имеют параметров. С помощью этих методоввывести все четные значения элементов исходного списка, просматривая148М. Э. Абрамян. Электронный задачник Programming Taskbook 4.6список с конца. Вывести также количество элементов в списке.Dynamic65. Даны ссылки A1 , A2 и A3 на первый, последний и текущий элементы двусвязного списка, содержащего не менее пяти элементов. Включитьв класс IntList (см. задание Dynamic59) функцию DeleteCurrent целоготипа (без параметров), удаляющую из списка текущий элемент и возвращающую его значение. После удаления элемента текущим становитсяследующий элемент или, если следующего элемента не существует, последний элемент списка. Метод DeleteCurrent также вызывает для удаленного элемента метод Dispose.

С помощью метода DeleteCurrent удалитьиз исходного списка пять элементов и вывести их значения. Вывести также ссылки на первый, последний и текущий элементы преобразованногосписка (для пустого списка вывести три константы null).Dynamic66. Даны ссылки A1 , A2 и A3 на первый, последний и текущий элементы непустого двусвязного списка. Включить в класс IntList (см. заданиеDynamic59) классовый метод — процедуру Split(L1 , L2 ), которая переносит элементы списка L1 от текущего до последнего в новый список L2(таким образом, список L1 делится на две части, причем первая часть может оказаться пустой). Параметры процедуры имеют тип IntList; первыйпараметр является входным, второй — выходным.

Текущими элементами непустых результирующих списков становятся их первые элементы.Новые объекты типа Node в процедуре Split не создавать. С помощьюэтой процедуры разбить исходный список на два и вывести ссылки напервый, последний и текущий элементы каждого из полученных списков(для пустого списка выводятся три константы null).Dynamic67.

Даны ссылки на первый, последний и текущий элементы двухнепустых двусвязных списков. Включить в класс IntList (см. заданиеDynamic59) классовый метод — процедуру Add(L1 , L2 ), которая добавляет все элементы из списка L1 (в том же порядке) в конец списка L2 ; врезультате список L1 становится пустым. Текущим элементом дополненного списка становится первый из добавленных элементов. Оба параметрапроцедуры имеют тип IntList и являются входными. Новые объекты типаNode в процедуре Add не создавать. С помощью этой процедуры добавитьпервый из данных списков в конец второго и вывести ссылки на первый,последний и текущий элементы объединенного списка.Dynamic68.

Даны ссылки на первый, последний и текущий элементы двухнепустых двусвязных списков. Включить в класс IntList (см. заданиеДинамические структуры данных (.NET)149Dynamic59) классовый метод — процедуру Insert(L1 , L2 ), которая вставляет все элементы из списка L1 (в том же порядке) в список L2 перед еготекущим элементом; в результате список L1 становится пустым. Текущимэлементом списка L2 становится первый из вставленных элементов. Обапараметра процедуры имеют тип IntList и являются входными. Новыеобъекты типа Node в процедуре Insert не создавать.

С помощью этой процедуры вставить первый из данных списков в текущую позицию второгои вывести ссылки на первый, последний и текущий элементы объединенного списка.Dynamic69. Даны ссылки на первый, последний и текущий элементы двухдвусвязных списков (второй список может быть пустым). Включить вкласс IntList (см. задание Dynamic59) классовый метод — процедуруMoveCurrent(L1 , L2 ), которая перемещает текущий элемент списка L1 всписок L2 (элемент вставляется после текущего элемента списка L2 и самстановится текущим; в списке L1 текущим становится следующий элемент или, если следующего элемента не существует, последний элемент).Оба параметра процедуры имеют тип IntList и являются входными.

Новыеобъекты типа Node в процедуре MoveCurrent не создавать. С помощьюэтой процедуры переместить текущий элемент первого списка во второйи вывести ссылки на первый, последний и текущий элементы каждого изполученных списков (для пустого списка выводятся три константы null).Список с барьерным элементомИспользованная в заданиях Dynamic31–Dynamic69 реализация двусвязного списка в виде цепочки узлов, ограниченной по краям нулевыми ссылкамиnull, не является единственно возможной. Двусвязный список можно такжереализовать в виде замкнутой цепочки узлов с дополнительным фиктивным,или барьерным, элементом.

Этот барьерный элемент связан своими свойствами Next и Prev с первым и последним «настоящим» элементом списка соответственно, поэтому, имея ссылку на барьерный элемент, можно сразу перейтикак к первому, так и к последнему элементу списка (естественно, первый и последний элементы также связаны с барьерным элементом своими свойствамиPrev и Next соответственно). Для работы с двусвязным списком, снабженнымбарьерным элементом, достаточно хранить две ссылки: Barrier, указывающуюна барьерный элемент, и Current, указывающую на текущий элемент (которыйможет быть как «настоящим», так и барьерным элементом). Свойство Data ба-150М. Э.

Абрамян. Электронный задачник Programming Taskbook 4.6рьерного элемента может быть произвольным; для определенности его можноположить равным 0. Пустой список в данной реализации представляет собойединственный барьерный элемент, «замкнутый на себя».Задания Dynamic70–Dynamic80 посвящены двусвязным спискам с барьерным элементом.Dynamic70◦ . Даны ссылки A1 и A2 на первый и последний элементы двусвязного списка, реализованного в виде цепочки узлов, которая ограниченапо краям константами null (если список пуст, то A1 = A2 = null). Преобразовать исходный список в циклический список (см. задание Dynamic55),снабженный барьерным элементом.

Барьерный элемент должен иметьзначение 0 и быть связан своими свойствами Next и Prev с первым и последним элементом исходного списка (в случае пустого исходного спискасвойства Next и Prev барьерного элемента должны указывать на сам барьерный элемент). Вывести ссылку на барьерный элемент полученногосписка. Не создавать новые объекты типа Node, за исключением барьерного элемента.Dynamic71. Даны ссылки A1 и A2 на барьерный и текущий элементы двусвязного списка (о списке с барьерным элементом см. задание Dynamic70).Разбить список на два, перенеся во второй список все элементы от текущего до последнего и добавив ко второму списку барьерный элемент.Если текущий элемент исходного списка является барьерным элементом,то второй список должен быть пустым (то есть состоять только из барьерного элемента).

Вывести ссылку на барьерный элемент второго списка. Несоздавать новые объекты типа Node, за исключением барьерного элементадля второго списка.Dynamic72. Даны ссылки A1 и A2 на барьерные элементы двух двусвязныхсписков (о списке с барьерным элементом см. задание Dynamic70). Объединить исходные списки, связав конец первого и начало второго списка(барьерным элементом объединенного списка должен остаться барьерныйэлемент первого списка). Вывести ссылки на первый и последний элементы объединенного списка (если объединенный список является пустым,то дважды вывести ссылку на его барьерный элемент). После удалениялишнего барьерного элемента вызвать для него метод Dispose.Dynamic73. Даны ссылки A1 и A2 на барьерные элементы двух двусвязныхсписков (о списке с барьерным элементом см.

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