Лекция: Do begin

p := q;

q := q^.next

End;

Dispose(p);

p^.next := nil;

Print_Spisok

End;

6. Вставка элемента в список.Пусть необходимо вставить в список (алгоритм 1) новый элемент sl_new перед первым вхождением элемента sl_old, если sl_old входит в список. Добавим к разделу описаний алгоритма I описание переменных sl_new,sl_old: string; и fl:Boolean.

Begin

write('Введите искомое слово ');

Readln(sl_old);

write('Введите новое слово ');

Readln(sl_new);

fl:=false;

p:=head;

while (p<> nil) and not fl

do if p^.wd=sl_old

then fl:=true

else p:=p^.next;

If fl

then begin {Вставка элемента}

New(q);

q^.wd:=sl_old;

q^.next:=p^.next;

p^.wd:=sl_new;

p^.next:=q

End;

Print_Spisok;

End;

Организация стека в динамической памяти

Стек линейный односвязный список, для которого разрешено добавлять или исключать элементы только с одного конца списка – «вершины» стека.

Принцип работы стека: «последним пришел – первым вышел».

П р и м е р. Написать процедуры помещения элементов (целых чисел) в стек и извлечения их из стека.

Type pstack = ^element;

element = record

m: integer;

next: pstack

End;

Var p, st :pstack; {st — указатель на вершину стека}

i: integer;

k,n: integer;

Procedure put ( n: integer); {n- параметр- значение}

begin{Помещает значение в стек}

new(p); {выделение памяти под новый элемент}

p^.m:=n; {заносим в него информацию}

p^.next:=st;{указательная часть предшествующего

элемента указывает на вершину стека}

st:=p

End;

Procedure get( var n: integer); {извлекает элемент

еще рефераты
Еще работы по информатике