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

Вставка элемента в начало списка



Procedure Ins_beg_list(P: el; {адрес включаемого элемента}

Var First: el);

Begin

If First = Nil Then

Begin

First:= p;

P^.next:= nil { можно не делать, так как уже сделано при

формировании этого элемента}

End

Else

Begin

P^.Next:=First;{ссылка на бывший первым элемент}

First:=p;{ включаемый элемент становится первым }

End;

End;

Включение элемента в конец списка.

Procedure Ins_end_list(P: el; Var First: el);

Begin

If First = Nil Then

First:=p

Else

Begin

q:=First; {цикл поиска адреса последнего элемента}

While q^.Next <> Nil do

q:=q^.Next;

q^.Next:=p;{ссылка с бывшего последнего

на включаемый элемент}

P^.Next:=Nil; {не обязательно }

End;

End;

Включение в середину (после i-ого элемента).

Procedure Ins_after_I (first: el; p: el; i: integer);

Var

t, q: 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

t:= first;{адрес 1 элемента}

q:= t^.next; {адрес 2 элемента}

t^.next:= p;

p^.next:= q;

End

Else

if i = n then

begin { см. случай вставки после последнего

элемента}

...

End

else {вставка в «середину» списка}

Begin

t:= first;

k:= 1;

while (k < i) do

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

k:= k + 1;

t:= t^.next;

End;

q:= t^.next;

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

t^.next:= p;

p^.next:= q;

{элемент с адресом р вставлен}

End;

End;

End;

ПРИМЕЧАНИЕ: аналогично рассуждая и применяя графическое представление действия, можно решить задачу включения элемента перед i-ым. Строго говоря, такая задача не эквивалентна задаче включения элемента после (i-1)-го.





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



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