Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

pascal_lections

.pdf
Скачиваний:
14
Добавлен:
02.04.2015
Размер:
1.43 Mб
Скачать

P

Top

10

3

1

5

NIL

Удаление элемента стека

1 исходное состояние

VAL

?

Top

P

10

?

3

?

1

 

5

 

 

NIL

2 извлечение информации из информационного поля вершины стека Тор в переменную VAL и установка на вершину стека вспомогательного указателя Р

VAL:=Top^.Info;

P:=Top;

VAL

10

Top

P

10

3

1

5

NIL

3 перемещение указателя вершины стека Тор на следующий элемент и освобождение памяти, занимаемой «старой» вершиной стека

61

Top:=P^.Link;

Dispose(P);

VAL

10

P

10

Top

3

1

5

NIL

Пример. Программа создания и удаления стека из 10 элементов. Процедура Push – создает первый эл-нт и добавляет очередной эл-нт.

Процедура Pop – извлекает информацию из вершины стека и освобождает память

program stack; uses crt;

type

TPtr = ^TElem; TElem = record Info :real; Link :TPtr;

end;

var

Top :TPtr; value :real; I :integer;

procedure Push; var P:TPtr; begin

new(P);

P^.Info:=random(100)/100;

P^.Link:=Top;

Top:=P;

end;

procedure Pop(var Val:real); var P:TPtr;

begin Val:=Top^.Info; P:=Top; Top:=P^.Link; Dispose(P);

end;

BEGIN clrscr; randomize;

{nachalnye ustanovki} Top:=nil;

62

{sozdanie steka iz 10 elementov} for I:=1 to 10 do Push; {uda;enir steka}

while Top<>nil do begin

Pop(Value);

writeln(Value:4:2);

end;

END.

63

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]