Очереди

Очередью называется динамическая структура данных, добавление компоненты в которую производится в один конец, а выборка осуществляется с другого конца. Очередь работает по принципу FIFO (First-In, First-Out) – «Поступивший первым, обслуживается первым».

Пример. Составить программу, которая формирует очередь, добавляет в нее произвольное количество компонент, а затем читает все компоненты.

Program QUEUE;

uses Crt;

type

Alfa = String[10];

PComp = ^Comp;

Comp = record

sD: Alfa;

pNext: PComp;

end;

var

pBegin, pEnd: PComp;

sC: Alfa;

Procedure CreateQueue(var pBegin,pEnd: PComp; var

sC: Alfa);

begin

New(pBegin);

pBegin^.pNext:= NIL;

pBegin^.sD:= sC;

pEnd:= pBegin;

end;

Procedure AddQueue(var pEnd: PComp; var sC:

Alfa);

var pAux: PComp;

begin

New(pAux);

pAux^.pNext:= NIL;

pEnd^.pNext:= pAux;

pEnd:= pAux;

pEnd^.sD:= sC;

end;

Procedure DelQueue(var pBegin: PComp; var sC:

Alfa);

begin

sC:= pBegin^.sD;

pBegin:= pBegin^.pNext;

end;

begin

Clrscr;

writeln( ВВЕДИ СТРОКУ );

readln(sC);

CreateQueue(pBegin, pEnd, sC);

repeat

writeln( ВВЕДИ СТРОКУ );

readln(sC);

AddQueue(pEnd, sC);

until sC = 'END';

x