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

Dispose(p);



{удаление бывшего первого элемента }

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 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



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