Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
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; Прочитано: 198 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!