Удаление узла из существующего списка

Обычно удаление из списка связывается с перенаправлением связи к удаленному узлу, чтобы закрыть доступ к нему.

Удаление узла следующего за текущим.

Пусть указатель С указывает на какой либо элемент списка и требуется удалить элемент следующий за ним. Для решения этой задачи необходимо в поле next узла, на который указывает С, поместить содержимое поля next удаляемого узла, после этого связь с удаляемым узлом теряется.

C^.next:=c^.next.^next;

В данном случае нарушена только связь с узлом при этом в динамической памяти узел остался и занимает память узел остался и занимает память, для того чтобы удалить это элемент из ДП необходимо.

Сохранить адрес удаляемого узла.

Нарушить связь с удаляемым узлом.

Выполнить dispose с сохраненным адресом.

Пример удаления узла.

Var

Tmp:pn;

.

.

Tmp:=C^.next;

C^.next:=c^.next^.next;

Dispose(tmp);


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: