
Динамические структуры данных 133
ты двусвязного списка. Также дано число N (> 0) и набор из N чи-
сел. Используя тип TListB (см. задание Dynamic74), описать процедуру
LBInsertFirst(L, D), которая добавляет новый элемент со значением D в
начало списка L (L — входной и выходной параметр типа TListB, D — вход-
ной параметр целого типа). Добавленный элемент становится текущим.
С помощью этой процедуры добавить в начало исходного списка данный
набор чисел (добавленные числа будут располагаться в списке в обратном
порядке) и вывести адрес текущего элемента полученного списка.
Dynamic76. Даны указатели P
1
и P
2
на барьерный и текущий элементы дву-
связного списка. Также даны пять чисел. Используя тип TListB (см. зада-
ние Dynamic74), описать процедуру LBInsertBefore(L, D), которая встав-
ляет новый элемент со значением D перед текущим элементом списка L (L
— входной и выходной параметр типа TListB, D — входной параметр це-
лого типа). Вставленный элемент становится текущим. С помощью этой
процедуры вставить пять данных чисел в исходный список и вывести
новый адрес его текущего элемента.
Dynamic77. Даны указатели P
1
и P
2
на барьерный и текущий элементы дву-
связного списка. Также даны пять чисел. Используя тип TListB (см. зада-
ние Dynamic74), описать процедуру LBInsertAfter(L, D), которая вставляет
новый элемент со значением D после текущего элемента списка L (L —
входной и выходной параметр типа TListB, D — входной параметр целого
типа). Вставленный элемент становится текущим. С помощью этой про-
цедуры вставить пять данных чисел в исходный список и вывести новый
адрес его текущего элемента.
Dynamic78
◦
. Даны указатели P
1
и P
2
на барьерный и текущий элемен-
ты двусвязного списка. Используя тип TListB (см. задание Dynamic74),
описать процедуры LBToFirst(L) (делает текущим первый элемент спис-
ка L), LBToNext(L) (делает текущим в списке L следующий элемент),
LBSetData(L, D) (присваивает текущему элементу списка L значение D
целого типа, если данный элемент не является барьерным) и функцию
IsBarrier(L) логического типа (возвращает TRUE, если текущий элемент
списка L является его барьерным элементом, и FALSE в противном слу-
чае). Параметр L имеет тип TListB; в процедурах LBToFirst и LBToNext
он является входным и выходным. С помощью этих процедур и функций
присвоить нулевые значения элементам исходного списка с нечетными
номерами и вывести количество элементов в списке, а также новый ад-