М.Э. Абрамян - Programming Taskbook (1157415), страница 30
Текст из файла (страница 30)
После извлечения элемента из очереди вызвать длянего метод Dispose.Dynamic19. Дано число N (> 0) и ссылки A1 и A2 на начало и конец непустой очереди. Извлечь из очереди N начальных элементов и вывести ихзначения (если очередь содержит менее N элементов, то извлечь все ееэлементы). Вывести также ссылки на начало и конец полученной очереди(для пустой очереди дважды вывести null). После извлечения элементоввызывать для них метод Dispose.Dynamic20. Даны ссылки A1 и A2 на начало и конец непустой очереди. Извлекать из очереди элементы, пока значение начального элемента очереди нестанет четным, и выводить значения извлеченных элементов (если очередь не содержит элементов с четными значениями, то извлечь все ееэлементы).
Вывести также ссылки на начало и конец полученной очереди(для пустой очереди дважды вывести null). После извлечения элементоввызывать для них метод Dispose.Dynamic21. Даны две очереди; начало и конец первой равны A1 и A2 , а второй— A3 и A4 (если очередь является пустой, то соответствующие объектыравны null). Переместить все элементы первой очереди (в порядке отначала к концу) в конец второй очереди и вывести ссылки на началои конец преобразованной второй очереди. Новые объекты типа Node несоздавать.Dynamic22. Дано число N (> 0) и две непустые очереди; начало и конец первойравны A1 и A2 , а второй — A3 и A4 .
Переместить N начальных элементовпервой очереди в конец второй очереди. Если первая очередь содержитменее N элементов, то переместить из первой очереди во вторую все эле-140М. Э. Абрамян. Электронный задачник Programming Taskbook 4.6менты. Вывести новые ссылки на начало и конец первой, а затем второйочереди (для пустой очереди дважды вывести null). Новые объекты типаNode не создавать.Dynamic23. Даны две непустые очереди; начало и конец первой равны A1и A2 , а второй — A3 и A4 . Перемещать элементы из начала первой очередив конец второй, пока значение начального элемента первой очереди нестанет четным (если первая очередь не содержит четных элементов, топереместить из первой очереди во вторую все элементы).
Вывести новыессылки на начало и конец первой, а затем второй очереди (для пустойочереди дважды вывести null). Новые объекты типа Node не создавать.Dynamic24. Даны две непустые очереди; начало и конец первой равны A1 и A2 ,а второй — A3 и A4 . Очереди содержат одинаковое количество элементов.Объединить очереди в одну, в которой элементы исходных очередей чередуются (начиная с первого элемента первой очереди). Вывести ссылкина начало и конец полученной очереди.
Новые объекты типа Node несоздавать.Dynamic25◦ . Даны две непустые очереди; начало и конец первой равны A1и A2 , а второй — A3 и A4 . Элементы каждой из очередей упорядочены повозрастанию (в направлении от начала очереди к концу). Объединить очереди в одну с сохранением упорядоченности элементов. Вывести ссылкина начало и конец полученной очереди. Новые объекты типа Node несоздавать, свойства Data не изменять.Dynamic26.
Даны ссылки A1 и A2 на начало и конец очереди (если очередьявляется пустой, то A1 = A2 = null). Также дано число N (> 0) и набор изN чисел. Описать класс IntQueue, содержащий следующие члены:• закрытые поля head и tail типа Node (начало и конец очереди);• конструктор с параметрами aHead, aTail — началом и концом существующей очереди;• процедура Enqueue(D), которая добавляет в конец очереди новый элемент со значением D (D — входной параметр целого типа);• процедура Put (без параметров), которая выводит ссылки на поля headи tail, используя метод Put класса PT.С помощью метода Enqueue добавить в исходную очередь данный наборчисел и вывести новые ссылки на ее начало и конец, используя для этогометод Put класса IntQueue.Dynamic27.
Даны ссылки A1 и A2 на начало и конец очереди, содержа-Динамические структуры данных (.NET)141щей не менее пяти элементов. Включить в класс IntQueue (см. заданиеDynamic26) функцию Dequeue целого типа (без параметров), которая извлекает из очереди первый (начальный) элемент, возвращает его значениеи вызывает для него метод Dispose. С помощью функции Dequeue извлечьиз исходной очереди пять начальных элементов и вывести их значения.Вывести также ссылки на начало и конец результирующей очереди (еслиочередь окажется пустой, то эти ссылки должны быть равны null).Dynamic28. Даны ссылки A1 и A2 на начало и конец очереди. Включить в классIntQueue (см. задание Dynamic26) функцию IsEmpty логического типа(без параметров), которая возвращает TRUE, если очередь пуста, и FALSEв противном случае. Используя эту функцию для проверки состоянияочереди, а также функцию Dequeue из задания Dynamic27, извлечь изисходной очереди пять начальных элементов (или все содержащиеся вней элементы, если их менее пяти) и вывести их значения.
Вывести такжезначение функции IsEmpty для полученной очереди и новые ссылки на ееначало и конец.Двусвязный списокDynamic29. Дан объект A2 типа Node, имеющий открытое свойство Data целого типа, а также открытые свойства Prev и Next типа Node. СвойствоPrev объекта A2 содержит ссылку на предыдущий объект того же типа, асвойство Next — ссылку на следующий объект. Вывести значения свойствData предыдущего и следующего объекта, а также ссылки A1 и A3 напредыдущий и следующий объект.Dynamic30◦ . Дана ссылка A1 на начало непустой цепочки элементов-объектовтипа Node, связанных между собой с помощью своих свойств Next. Используя свойства Prev данных объектов, преобразовать исходную (односвязную) цепочку в двусвязную, в которой каждый элемент связан нетолько с последующим элементом (с помощью свойства Next), но и с предыдущим (с помощью свойства Prev).
Свойство Prev первого элементаположить равным null. Вывести ссылку A2 на последний элемент преобразованной цепочки.В заданиях Dynamic31–Dynamic69 структура «двусвязный список» (doublylinked list) моделируется цепочкой узлов-объектов типа Node, связанных как спредыдущим, так и с последующим узлом (см. задание Dynamic30).
Свойство142М. Э. Абрамян. Электронный задачник Programming Taskbook 4.6Next последнего элемента цепочки и свойство Prev первого элемента цепочкиравны null. Для доступа к любому элементу двусвязного списка достаточноиметь ссылку на один из его элементов, однако для ускорения операций сосписком удобно хранить три ссылки: на первый элемент списка (first), на егопоследний элемент (last) и на текущий элемент (current). Для пустого списка все эти ссылки полагаются равными null. Как в случае стека и очереди,значением элемента списка считается значение его свойства Data.Dynamic31.
Дана ссылка A0 на один из элементов непустого двусвязного списка. Вывести число N — количество элементов в списке, а также ссылки A1и A2 на первый и последний элементы списка.Dynamic32. Даны числа D1 и D2 и ссылка A0 на один из элементов непустогодвусвязного списка. Добавить в начало списка новый элемент со значением D1 , а в конец — новый элемент со значением D2 . Вывести ссылки напервый и последний элементы полученного списка.Dynamic33. Дано число D и ссылка A0 на один из элементов непустого двусвязного списка. Вставить перед данным элементом списка новый элементсо значением D и вывести ссылку на добавленный элемент списка.Dynamic34.
Дано число D и ссылка A0 на один из элементов непустого двусвязного списка. Вставить после данного элемента списка новый элементсо значением D и вывести ссылку на добавленный элемент списка.Dynamic35. Даны ссылки A1 и A2 на первый и последний элементы двусвязного списка, содержащего не менее двух элементов. Продублировать всписке первый и последний элементы (новые элементы добавлять передсуществующими элементами с такими же значениями) и вывести ссылкуна первый элемент преобразованного списка.Dynamic36.
Даны ссылки A1 и A2 на первый и последний элементы двусвязного списка, содержащего не менее двух элементов. Продублировать всписке первый и последний элементы (новые элементы добавлять послесуществующих элементов с такими же значениями) и вывести ссылку напоследний элемент преобразованного списка.Dynamic37. Дан первый элемент A1 непустого двусвязного списка. Продублировать в списке все элементы с нечетными номерами (новые элементыдобавлять перед существующими элементами с такими же значениями) ивывести ссылку на первый элемент преобразованного списка.Dynamic38.
Дан первый элемент A1 непустого двусвязного списка. Продублировать в списке все элементы с нечетными номерами (новые элементыДинамические структуры данных (.NET)143добавлять после существующих элементов с такими же значениями) ивывести ссылку на последний элемент преобразованного списка.Dynamic39. Дан первый элемент A1 непустого двусвязного списка. Продублировать в списке все элементы с нечетными значениями (новые элементыдобавлять перед существующими элементами с такими же значениями) ивывести ссылку на первый элемент преобразованного списка.Dynamic40.
Дан первый элемент A1 непустого двусвязного списка. Продублировать в списке все элементы с нечетными значениями (новые элементыдобавлять после существующих элементов с такими же значениями) ивывести ссылку на последний элемент преобразованного списка.Dynamic41. Дана ссылка A0 на один из элементов непустого двусвязного списка. Удалить из списка данный элемент и вывести две ссылки: на элемент,предшествующий удаленному, и на элемент, следующий за удаленным(один или оба этих элемента могут отсутствовать; для отсутствующихэлементов выводить null). После удаления элемента из списка вызватьдля него метод Dispose.Dynamic42. Дан первый элемент A1 двусвязного списка, содержащего не менее двух элементов. Удалить из списка все элементы с нечетными номерами и вывести ссылку на первый элемент преобразованного списка.