128
М. Э. Абрамян. Электронный задачник Programming Taskbook 4.5
ние 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
он является входным и выходным. С помощью этих процедур и функций
присвоить нулевые значения элементам исходного списка с нечетными
номерами и вывести количество элементов в списке, а также новый адрес
текущего элемента списка. Барьерный элемент при подсчете элементов не
учитывать.
Dynamic79. Даны указатели
P
1
и
P
2
на барьерный и текущий элементы дву-
связного списка. Используя тип TListB (см. задание Dynamic74), описать
процедуры LBToLast(
L) (делает текущим последний элемент списка
L),
LBToPrev(
L) (делает текущим в списке
L предыдущий элемент) и функ-
цию LBGetData(
L) целого типа (возвращает значение текущего элемен-
та списка
L). Параметр
L имеет тип TListB; в процедурах LBToLast и
LBToPrev он является входным и выходным. С помощью этих проце-
дур и функций, а также с использованием
функции IsBarrier из задания
Dynamic78, вывести все четные значения элементов исходного списка,
просматривая список с конца. Вывести также количество элементов в
списке. Барьерный элемент при подсчете элементов не учитывать.
Dynamic80. Даны указатели
P
1
и
P
2
на барьерный и текущий элементы непу-
стого двусвязного списка, причем текущий элемент не совпадает с ба-
рьерным. Используя тип TListB (см. задание Dynamic74), описать функ-
цию LBDeleteCurrent(
L) целого типа, удаляющую из списка
L текущий
элемент и возвращающую его значение (
L — входной и выходной пара-
Избранные задания из различных групп
129
метр типа TListB). Текущим становится следующий элемент или, если
следующий элемент является барьерным, предыдущий элемент списка.
Функция также освобождает память, занимаемую удаленным элементом.
Если текущим элементом является барьерный элемент, то
функция не вы-
полняет никаких действий и возвращает 0. С помощью этой функции,
а также
функции IsBarrier из задания Dynamic78, удалить из исходного
списка пять элементов (или все элементы, если их менее пяти) и вывести
их значения. Вывести также новый адрес текущего элемента списка.
Достарыңызбен бөлісу: