Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

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;

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

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

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





Дата публикования: 2014-11-04; Прочитано: 195 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.008 с)...