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

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

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

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


Реализация ДЕКА на базе вектора.

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

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

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

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

6.2.2 Алгоритмы :

{Дек пуст или нет}
function NilExist(a:Dt):boolean;
begin
NilExist:=a.end=0;
end;

{Вспомогательная процедура Finter}
procedure Finter(a:Dt;d:integer);
var i:1..Nmax;
begin
p:=nil;
case d of
1: for i:=a.end downto 1 do a.vect[i+1]:=a.vect[i];
-1:for i:=2 to a.end do a.vect[i-1]:=a.vect[i];
end;
a.end:=a.end+d;
end;

{Добавить элемент в начало дека.}
procedure AddElemToHome(var a:Dt;inf:InformType);
begin
if not fullexist(a) then begin
finter(a,1); a.vect[1]:=inf;
end;
end;

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

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

{Взять элемент из kонца дека.}
procedure GetElemEnd(a:Dt;var inf:InformType);
begin
if not nilexist(a) then inf:=a.vect[a.end]
end;

{Удалить элемент из начала дека.}
procedure DelElemHome(Var a:Dt);
begin
if not nilexist(a) then finter(a,-1);
end;

{Удалить элемент из конца дека.}
procedure DelElemEnd(Var a:Dt);
begin
if not nilexist(a) then
a.end:=a.end-1;
end;

{Чистит дек.}
procedure DelDek(var a:Dt);
begin
a.end:=0
end;

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

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

 

Hosted by uCoz