Лекция: Dispose ( t);

End

Else

if i = n then

begin{ см. случай удаления последнего элемента}

.. .

End

else{удаление из «середины» списка}

Begin

t := first;

q := nil;

k := 1;

while ( k < i ) do

begin{поиск адресов (i-1)-го и i-го элементов}

k := k + 1;

q := t;

t := t^.next;

End;

r := t^.next;

{найдены адреса i-го (t), (i-1)-го (q) и (i+1)-го (r) элементов }

q^.next := r;

dispose ( t );{удален i-ый элемент }

End;

End;

End;

Удаление всего списка с освобождением памяти.

 

Procedure Delete_List(Var First: el);

Var

P, q: el;

Answer: string;

Begin

If First <> Nil Then

Begin{ список не пуст }

writeln ( 'Вы хотите удалить весь список? (да/нет)' );

Readln ( answer );

if answer = 'да' then

Begin

q:=First;

p:=nil;

While ( q <> nil ) do

Begin

p:=q;

q:=q^.Next;

Dispose(p);

End;

First:=Nil;

End;

End

Else

writeln ('список пуст');

End;

 

Задачи на замену элементов в линейном однонаправленном списке без головного элемента.

 

Операция замены элемента в списке практически представляет собой комбинацию удаления и вставки элемента. Читателю дается возможность, используя представленные ранее графические приемы и примеры программ, самому написать процедуры замены элементов. Перед выполнением операции замены элемента желательно запрашивать у пользователя подтверждение замены.

Действуя аналогично, можно построить графические схемы и программы задач действий с двунаправленными списками.

 

еще рефераты
Еще работы по информатике