Удаление элементов списка
Для того чтобы при удалении элемента из середины списка не терялась целостность всей структуры, необходимо при поиске удаляемого элемента "остановиться" за один шаг до него: в тот момент, когда следующий за текущим элемент должен быть удален (см. рис. 10.5):
p:= head; {начать с головы списка} while p^.next^.zhach<>х do p:= p^.next; {поиск} q:= p^.next; {удаляемый элемент} p^.next:= q^.next; {связка "через один"} dispose(q); {освобождение памяти}