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