TURBO PASCAL

Новости           

Программы

Turbo Pascal

Игры

Документация

"Странности"

FAQ

Ссылки

Гостевая книга

Благодарности

От автора

 

 

 

Работа с очередью

Для создания очереди и работы с ней необходимо иметь как минимум два указателя'

• на начало очереди (возьмем идентификатор BegQ),

• на конец очереди (возьмем идентификатор EndQ)

Кроме того, для освобождения памяти удаляемых элементов требуется дополнительный временный указатель (возьмем идентификатор Р) Дополнительный -указатель также часто используется р. других ситуациях для удобства работы с очередью Создание очереди

! Исходное состояние

tmp210-13.jpg

tmp210-14.jpg

tmp210-16.jpg

Удаление элемента очереди 1. Исходное состояние:

tmp210-15.jpg

program d_point2; uses crt; type

tptr=Atclem; ^

tclem=record inf:real; link : tptr

end; var

begq.endq : tptr; value: real; i : byte;

procedure addel (val: real); var

P : tptr; begin

new(p);

pA.inf:=val;

tmp23E-17.jpg

tmp23E-18.jpg

tmp23E-19.jpg

В качестве примера приведем программу создания и удаления стека из десяти элементов. В ней для работы со стеком используются две процедуры: 1)процедура push, которая в зависимости от состояния

стека создает первый или добавляет очередной элемент; 2)процедура pop, которая извлекает информацию из вершины

стека с последующим освобождением ее памяти.

program d_point3;

uses crt;

type

tptr=- telem;

telem=record

inf: real;

link: tptr end; var

top : tptr; value: real; i : byte;

procedure push(val: real): var

p:tptr; begin

new(p);

pA.inf:=val;

pA.link:=top;

top-p end; procedure pop(var val: real);

var

P : tptr; begin

val:=topA.inf;

p:=top;

top:=pA.link;

dispose(p)

end;

begin (основная программа}

clrscr:

{Начальная установка указателей}

top:=-nil;

{Создание стека из 10 элементов [

for i:=l to 10 do push(i);

{Удаление стека с распечаткой значений его элементов}

while top о nil do

begin

pop( value),

writeln('valuc-,value :5 :2)

end end.

Результат работы этой программы будет таким:

Value - 10.00

Value - 5.00

Value = 9.00

Value -4.00

Value = 8.00

Value "3.00

Value = 7.00

Value = 2.00

Value = 6.00

Value = 1.00

 

 

На первую страницу

 

Rambler's Top100 PROext: Top 1000 Rambler's Top100
(с)Все права защищены

По всем интересующим вопросам прошу писать на электронный адрес

Hosted by uCoz