Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
изменить значение n в основной программе}
Begin
p: =st; {запишем в р адрес вершины стека}
n: =p^.m; {в n - информационная часть верхнего
элемента стека}
st: =p^.next; {присваиваем вершине стека адрес
следующего элемента}
Dispose (p);
End;
begin {основная программа }
st: nil; {вершина стека – «пустой» указатель,
стек пуст}
readln (k); {количество чисел}
for i:=1 to k
do begin {вводим числа и помещаем в стек}
Readln(n);
Put(n)
End;
…
while st<> nil
do begin {вывод элементов стека}
Get(n);
Writeln(n)
End;
End.
Очереди
Очередь – линейный односвязный список, для которого разрешены только два действия: извлечение элемента из начала очереди «головы» и добавление элемента в конец («хвост») очереди.
Другими словами, в очереди элементы всегда добавляются в конец, а удаляются из начала.
Принцип работы очереди: «первым пришел – первым вышел».
П р и м е р. Создать очередь из произвольного числа компонентов. Извлечь и напечатать все элементы очереди.
Type pocher= ^element;
element=record
m: integer;
next: poch;
End;
Var
no,ko,p:poch; {no –начало очереди, ko – конец очереди}
n,k,i: integer;
Procedure putoch(n:integer); {помещает значение в очередь}
Begin
new(p); {выделение памяти под новый элемент}
p^.m:=n; {заносим в него информацию}
p^.next:=ko; {указательная часть ccылается
на начало очереди}
ko:= p
End;
Procedure getoch(var n:integer); {извлек. эл-т из очереди}
Begin
n: =p^.m; {в n - информационная часть 1-го элемента
очереди}
p: = no; {запишем в p адрес начала очереди}
no: =p^.next; { присваиваем началу очереди адрес
следующего элемента}
Дата публикования: 2014-10-25; Прочитано: 295 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!