Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
{удаление бывшего первого элемента }
End;
End
End
Else
writeln (' список пуст, удаление первого элемента невозможно' );
End;
Удаление элемента из конца списка.
Нужен запрос на удаление
Procedure Del_end_list(Var First:el);
Begin
If First < > Nil then
Begin {список не пуст}
if fiRst^.next = nil then
begin {в списке - единственный элемент }
p:= first;
Dispose (p);
First:= nil;
End
Else
begin {в списке больше одного элемента }
Q:= First;
T:= First;
{цикл поиска адреса последнего элемента}
While q^.Next < > Nil do
Begin
T:= q;{запоминание адреса текущего элемента}
q:=q^.Next;{переход к следующему элементу}
End;
{после окончания цикла Т - адрес предпоследнего,
а Q - адрес последнего элемента списка }
dispose (q); {удаление последнего элемента }
t^.next:= nil; {предпоследний элемент стал
последним }
End
End
Else
writeln (' список пуст, удаление элемента невозможно ');
End;
ПРИМЕЧАНИЕ. После исключения элемента из списка этот элемент может не удаляться из памяти, а через список параметров передан на какую-либо обработку, если этого требует алгоритм обработки данных.
Удаление элемента из середины списка (i-ого элемента).
Procedure Del_I_elem (first: el; i: integer);
Var
t, q, r: el;
K,n: integer;
Begin
n:= count_el(first); {определение числа элементов списка}
if (i < 1) or (i > n) then
Begin
writeln ('i задано некорректно' );
Exit;
End
Else
Begin
{нужно добавить подтверждение удаления }
if i = 1 then
begin {удаляется 1 элемент}
t:= first;
first:= first^.next;
Дата публикования: 2014-11-04; Прочитано: 232 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!