Удаление элемента из конца списка
Удаление элемента из конца списка производится, когда указатель 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;
Задание. Напишите полный текст программы, решающей рассматриваемую задачу. Протестируйте программу, дополните комментарием покажите учителю для оценки.
Дата добавления: 2015-05-16; просмотров: 744;