Информационный портал Media Systems & Bear Corp.

Главная Новости Delphi C&C++ Tеория Графов Web-Design Математика Исходники и Проекты Лисп и Пролог Ссылки

Портал :: Динамическая память :: Очередь
 
DINAMIC MEMORY
 
 

  • Динамическая память под DOS реализация для языка Borlad Pascal
Rambler's Top100 Rambler's Top100  
 


Реализация ОЧЕРЕДИ на базе вектора.

4.1 Реализация.

1) Сделать очередь пустой.(Процедура)
2) Проверить наличие элементов в очереди.(Функция)
3) Добавить элемент в конец очереди.(Процедура)
4) Взять элемент из начала очереди.(Процедура)
5) Удалить элемент из начала очереди.(Процедура)
6) Удалить очередь.(Процедура)

4.2 Процедуры и функции.

4.2.1 Основные типы и переменные :
Введем константу Nmax - максимальное кол-во элементов в очереди.
Пусть const Nmax=100;
Type InformType=byte;{Информационная часть}
VectType=array[1..Nmax] of InformType;
Queue=record
vect:VectType;
end:0..Nmax;
end;

var a:queuet;

4.2.2 Алгоритмы : {Очередь пуста или нет}

function NilExist(a:Queue):boolean;
begin
NilExist:=a.end=0;
end;

{Очередь полна или нет}
function FullExist(a:Queue):boolean;
begin
NilExist:=a.end=Nmax;
end;

{Добавить элемент в конец очереди.}
procedure AddElem(var a:Queue;inf:InformType);
begin
if not FullExist(a) then
begin
a.end:=a.end+1;
a.vect[a.end]:=inf;
end;
end;

{Взять элемент из начала очереди.}
procedure GetElem(a:Queue;var inf:InformType);
begin
if not FullExist(a) then inf:=a.vect[1];
end;

{Удалить элемент из начала очереди.}
procedure DelElem(Var a:Queue);
var i:1..Nmax;
begin
for i:=2 to a.end do
a.vect[i-1]:=a.vect[i];
a.end:=a.end-1;
if a.end<0 then a.end:=0
end;

{Удалить очередь.}
procedure DelQueue(var a:Queue);
begin
a.end:=0;
end;

 
     
  Гостевая книга . Связь с разработчиками: Bear Corporation, Media Studio.  
  Это место для вашей рекламы  

Дизайн: Bear Corner, Inc. & Media Sudio.
Последнее обновление: 24.03.2001.

 

Hosted by uCoz