| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Центр помощи > [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; |