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

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

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

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

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

Объединить исходные списки,поместив все элементы первого списка (в том же порядке) после данногоэлемента второго списка, и вывести указатели на первый и последнийэлементы объединенного списка. Операции выделения и освобожденияпамяти не использовать.Dynamic53. Даны указатели PX и PY на два различных элемента двусвязного списка; элемент с адресом PX находится в списке перед элементом садресом PY , но не обязательно рядом с ним. Переместить элементы, расположенные между данными элементами (включая данные элементы), вновый список (в том же порядке).

Вывести указатели на первые элементы преобразованного и нового списков. Если преобразованный списококажется пустым, то связанный с ним указатель положить равным nil.Операции выделения и освобождения памяти не использовать.Dynamic54. Даны указатели PX и PY на два различных элемента двусвязного списка; элемент с адресом PX находится в списке перед элементом садресом PY , но не обязательно рядом с ним. Переместить элементы, расположенные между данными элементами (не включая данные элементы),в новый список (в том же порядке). Вывести указатели на первые элементы преобразованного и нового списков.

Если новый список окажетсяпустым, то связанный с ним указатель положить равным nil. Операциивыделения и освобождения памяти не использовать.Dynamic55◦ . Дан указатель P1 на первый элемент непустого двусвязного списка. Преобразовать список в циклический, записав в поле Next последнегоэлемента списка адрес его первого элемента, а в поле Prev первого элемента — адрес последнего элемента. Вывести указатель на элемент, которыйДинамические структуры данных127был последним элементом исходного списка.Dynamic56.

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

Операциивыделения и освобождения памяти не использовать.Dynamic57. Дано число K (> 0) и указатели P1 и P2 на первый и последнийэлементы непустого двусвязного списка. Осуществить циклический сдвигэлементов списка на K позиций вперед (то есть в направлении от началак концу списка) и вывести указатели на первый и последний элементыполученного списка. Для выполнения циклического сдвига преобразоватьисходный список в циклический (см. задание Dynamic55), после чего«разорвать» его в позиции, соответствующей данному значению K. Операции выделения и освобождения памяти не использовать.Dynamic58.

Дано число K (> 0) и указатели P1 и P2 на первый и последнийэлементы непустого двусвязного списка. Осуществить циклический сдвигэлементов списка на K позиций назад (то есть в направлении от концак началу списка) и вывести указатели на первый и последний элементы полученного списка. Для выполнения циклического сдвига преобразовать исходный список в циклический (см. задание Dynamic55), послечего «разорвать» его в позиции, соответствующей данному значению K.Операции выделения и освобождения памяти не использовать.Dynamic59◦ . Даны указатели P1 , P2 и P3 на первый, последний и текущий элементы двусвязного списка (если список является пустым, тоP1 = P2 = P3 = nil). Также дано число N (> 0) и набор из N чисел.

Описатьтип TList — запись с полями First, Last и Current типа PNode (поля указывают соответственно на первый, последний и текущий элементы списка)— и процедуру InsertLast(L, D), которая добавляет новый элемент со значением D в конец списка L (L — входной и выходной параметр типа TList,D — входной параметр целого типа). Добавленный элемент становитсятекущим. С помощью этой процедуры добавить в конец исходного списка данный набор чисел (в том же порядке) и вывести новые адреса егопервого, последнего и текущего элементов.128М.

Э. Абрамян. Электронный задачник Programming Taskbook 4.6Dynamic60. Даны указатели P1 , P2 и P3 на первый, последний и текущий элементы двусвязного списка (если список является пустым, тоP1 = P2 = P3 = nil). Также дано число N (> 0) и набор из N чисел. Используя тип TList (см. задание Dynamic59), описать процедуру InsertFirst(L, D),которая добавляет новый элемент со значением D в начало списка L (L— входной и выходной параметр типа TList, D — входной параметр целого типа). Добавленный элемент становится текущим. С помощью этойпроцедуры добавить в начало исходного списка данный набор чисел (добавленные числа будут располагаться в списке в обратном порядке) ивывести новые адреса его первого, последнего и текущего элементов.Dynamic61.

Дан непустой двусвязный список, первый, последний и текущий элементы которого имеют адреса P1 , P2 и P3 . Также даны пятьчисел. Используя тип TList (см. задание Dynamic59), описать процедуру InsertBefore(L, D), которая вставляет новый элемент со значением Dперед текущим элементом списка L (L — входной и выходной параметртипа TList, D — входной параметр целого типа). Вставленный элементстановится текущим. С помощью этой процедуры вставить пять данныхчисел в исходный список и вывести новые адреса его первого, последнегои текущего элементов.Dynamic62. Дан непустой двусвязный список, первый, последний и текущий элементы которого имеют адреса P1 , P2 и P3 . Также даны пять чисел. Используя тип TList (см.

задание Dynamic59), описать процедуруInsertAfter(L, D), которая вставляет новый элемент со значением D после текущего элемента списка L (L — входной и выходной параметр типаTList, D — входной параметр целого типа). Вставленный элемент становится текущим. С помощью этой процедуры вставить пять данных чиселв исходный список и вывести новые адреса его первого, последнего итекущего элементов.Dynamic63◦ .

Дан непустой двусвязный список, первый, последний и текущийэлементы которого имеют адреса P1 , P2 и P3 . Используя тип TList (см. задание Dynamic59), описать процедуры ToFirst(L) (делает текущим первыйэлемент списка L), ToNext(L) (делает текущим в списке L следующий элемент, если он существует), SetData(L, D) (присваивает текущему элементусписка L значение D целого типа) и функцию IsLast(L) логического типа(возвращает TRUE, если текущий элемент списка L является его последним элементом, и FALSE в противном случае). Параметр L имеет тип TList;Динамические структуры данных129в процедурах ToFirst и ToNext он является входным и выходным.

С помощью этих процедур и функций присвоить нулевые значения элементамисходного списка с нечетными номерами и вывести количество элементов в списке, а также новые адреса его первого, последнего и текущегоэлементов.Dynamic64. Дан непустой двусвязный список, первый, последний и текущий элементы которого имеют адреса P1 , P2 и P3 . Используя тип TList(см. задание Dynamic59), описать процедуры ToLast(L) (делает текущимпоследний элемент списка L), ToPrev(L) (делает текущим в списке L предыдущий элемент, если он существует) и функции GetData(L) целого типа(возвращает значение текущего элемента списка L), IsFirst(L) логического типа (возвращает TRUE, если текущий элемент списка L является егопервым элементом, и FALSE в противном случае).

Параметр L имеет типTList; в процедурах ToLast и ToPrev он является входным и выходным.С помощью этих процедур и функций вывести все четные значения элементов исходного списка, просматривая список с конца. Вывести такжеколичество элементов в списке.Dynamic65. Даны указатели P1 , P2 и P3 на первый, последний и текущий элементы двусвязного списка, содержащего не менее пяти элементов. Используя тип TList (см. задание Dynamic59), описать функциюDeleteCurrent(L) целого типа, удаляющую из списка L текущий элементи возвращающую его значение (L — входной и выходной параметр типаTList).

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

Используя тип TList (см. задание Dynamic59), описать процедуру SplitList(L1 , L2 ), которая переноситэлементы списка L1 от текущего до последнего в новый список L2 (такимобразом, список L1 делится на две части, причем первая часть может оказаться пустой). Параметры процедуры имеют тип TList; первый параметрявляется входным и выходным, второй — выходным. Текущими элемен-130М. Э.

Абрамян. Электронный задачник Programming Taskbook 4.6тами непустых результирующих списков становятся их первые элементы.Операции выделения и освобождения памяти в процедуре не использовать. С помощью этой процедуры разбить исходный список на два ивывести адреса первого, последнего и текущего элементов полученныхсписков.Dynamic67. Даны указатели на первый, последний и текущий элементыдвух непустых двусвязных списков. Используя тип TList (см. заданиеDynamic59), описать процедуру AddList(L1 , L2 ), которая добавляет всеэлементы из списка L1 (в том же порядке) в конец списка L2 ; в результатесписок L1 становится пустым. Текущим элементом списка L2 становитсяпервый из добавленных элементов. Оба параметра процедуры имеют типTList и являются входными и выходными. Операции выделения и освобождения памяти в процедуре не использовать. С помощью этой процедурыдобавить первый из исходных списков в конец второго и вывести адресапервого, последнего и текущего элементов объединенного списка.Dynamic68.

Свежие статьи
Популярно сейчас