Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [Pascal] Структура "двусвязный список"


Автор: Tarantul2007 27.3.2007, 08:04
(Указания к ней)
В задании структура "двусвязный список" (double linked list) моделируется цепочкой узлов-записей типа TNode,
связанных как с предыдущим, так и с последующим узлом.
Поле Next последнего элемента цепочки и поле Prev первого элемента цепочки равны nil.
Для доступа к любому элементу двусвязного списка достаточно иметь указатель на один из его элементов,
однако для ускорения операций со списком обычно хранят три указателя: на первый элемент списка (first),
на его последний элемент (last) и на текущий элемент (current). Для пустого списка все эти указатели полагаются равными nil.
Как в случае стека и очереди,
значением элемента списка считается значение его поля Data.
(Сама задача)    
Дан указатель P0 на один из элементов непустого двусвязного списка.
Удалить из списка данный элемент и вывести два указателя: на элемент,
предшествующий удаленному,
и на элемент, следующий за удаленным (один или оба этих элемента могут отсутствовать; для отсутствующих элементов выводить nil).
После удаления элемента из списка освободить память, занимаемую этим элементом.
Записать все значения списка в файл с именем "double_linked_list_2.txt"

type TNode=^PNode;
     PNode=record
     Data:integer;
     Next,Prev:TNode
end;

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)