Pointer71. Даны указатели P_1 и P_2 на барьерный и текущий элементы двусвязного списка (о списке с барьерным элементом см. задание Pointer70). Разбить список на два, перенеся во второй список все элементы от текущего до последнего и добавив ко второму списку барьерный элемент. Если текущий элемент исходного списка является барьерным элементом, то второй список должен быть …
Записи с меткой «Паскаль»
Решаем задачи Абрамян на Паскале. Pointer70
Pointer70. Даны указатели P_1 и P_2 на первый и последний элементы двусвязного списка, реализованного в виде цепочки узлов, ограниченной по краям нулевыми указателями (если список пуст, то P_1=P_2=nil). Преобразовать исходный список в циклический список (см. задание Pointer55), снабженный барьерным элементом. Барьерный элемент должен иметь значение 0 и быть связан своими полями Next и Prev с …
Решаем задачи Абрамян на Паскале. Pointer69
Pointer69. Даны указатели на первый, последний и текущий элементы двух двусвязных списков (второй список может быть пустым). Используя тип TList (см. задание Pointer59), описать процедуру MoveCurrent(L_1, L_2), которая перемещает текущий элемент списка L_1 в список L_2 (элемент вставляется после текущего элемента списка L_2 и сам становится текущим; в списке L_1 текущим становится следующий элемент или, …
Решаем задачи Абрамян на Паскале. Pointer68
Pointer68. Даны указатели на первый, последний и текущий элементы двух непустых двусвязных списков. Используя тип TList (см. задание Pointer59), описать процедуру InserTList(L_1, L_2), которая вставляет все элементы из списка L_2 (в том же порядке) в список L_1 перед его текущим элементом; в результате список L_2 становится пустым. Текущим элементом списка L_1 становится первый из вставленных …
Решаем задачи Абрамян на Паскале. Pointer67
Pointer67. Даны указатели на первый, последний и текущий элементы двух непустых двусвязных списков. Используя тип TList (см. задание Pointer59), описать процедуру AddList(L_1, L_2), которая добавляет все элементы из списка L_2 (в том же порядке) в конец списка L_1; в результате список L_2 становится пустым. Текущим элементом списка L_1 становится первый из добавленных элементов. Оба параметра …
Решаем задачи Абрамян на Паскале. Pointer66
Pointer66. Даны указатели P_1, P_2 и P_3 на первый, последний и текущий элементы непустого двусвязного списка. Используя тип TList (см. задание Pointer59), описать процедуру SpliTList(L_1, L_2), которая переносит элементы списка L_1 от текущего до последнего в новый список L_2 (таким образом, список L_1 делится на две части, причем первая часть может оказаться пустой). Параметры процедуры …
Решаем задачи Абрамян на Паскале. Pointer65
Pointer65. Даны указатели P_1, P_2 и P_3 на первый, последний и текущий элементы двусвязного списка, содержащего не менее пяти элементов. Используя тип TList (см. задание Pointer59), описать функцию DeleteCurrent(L) целого типа, удаляющую из списка L текущий элемент и возвращающую его значение (L — входной и выходной параметр типа TList). После удаления элемента текущим становится следующий …
Решаем задачи Абрамян на Паскале. Pointer64
Pointer64. Дан непустой двусвязный список, первый, последний и текущий элементы которого имеют адреса P_1, P_2 и P_3. Используя тип TList (см. задание Pointer59), описать процедуры ToLast(L) (делает текущим последний элемент списка L), ToPrev(L) (делает текущим в списке L предыдущий элемент, если он существует) и функции GetData(L) целого типа (возвращает значение текущего элемента списка L), IsFirst(L) …
Решаем задачи Абрамян на Паскале. Pointer63
Pointer63. Дан непустой двусвязный список, первый, последний и текущий элементы которого имеют адреса P_1, P_2 и P_3. Используя тип TList (см. задание Pointer59), описать процедуры ToFirst(L) (делает текущим первый элемент списка L), ToNext(L) (делает текущим в списке L следующий элемент, если он существует), SetData(L, D) (присваивает текущему элементу списка L значение D целого типа) и …
Решаем задачи Абрамян на Паскале. Pointer62
Pointer62. Дан непустой двусвязный список, первый, последний и текущий элементы которого имеют адреса P_1, P_2 и P_3. Также даны пять чисел. Используя тип TList (см. задание Pointer59), описать процедуру InsertAfter(L, D), которая вставляет новый элемент со значением D после текущего элемента списка L (L — входной и выходной параметр типа TList, D — входной параметр …