Pointer71. Даны указатели $$P_1$$ и $$P_2$$ на барьерный и текущий элементы двусвязного списка (о списке с барьерным элементом см. задание Pointer70). Разбить список на два, перенеся во второй список все элементы от текущего до последнего и добавив ко второму списку барьерный элемент. Если текущий элемент исходного списка является барьерным элементом, то второй список должен быть …
Записи с меткой «Pascal»
Решаем задачи Абрамян на Паскале. 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$$ — входной параметр …