Удаление элемента из конца списка

Удаление элемента из конца списка производится, когда указатель dx показывает на предпоследний элемент списка, а х – на последний.

Изобразим удаление графически:

{Найдем предпоследний элемент}

x:= Head;

dx:=Head;

while x^.Next<>Nil do

Begin

dx:= x;

x:= x^.Next;

End;

{Удаляем элемент x^ из списка и освобождаем занимаемую им память}

dx^.Next:= Nil;

Dispose(x);

Теперь опишем процедуру удаления элементов из списка в общем случае:

Procedure Del(Gigit: integer; Var u: Ukazatel);

Var

x, dx: UKAZATEL;

Begin

x:= Head;

while x<>Nil do

if x^.Data=Digit

then

Begin

if x=y

then

Begin

Head:= Head^.Next;

Dispose(x);

x:= Head;

End;

else

Begin

dx^.Next:= x^.Next;

Dispose(x);

x:= dx^.Next;

End;

End;

else

Begin

dx:= x;

x:= x^.Next;

End;

End;

Задание. Напишите полный текст программы, решающей рассматриваемую задачу. Протестируйте программу, дополните комментарием покажите учителю для оценки.


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



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