Структуры и алгоритмы обработки данных. Ключарев А.А - 48 стр.

UptoLike

48
procedure InBeginDeck(NewElem: TypeData;
var ptrBeginDeck: PElement);
{Добавление элемента в начало дека}
begin
InsFirst_LineDoubleList(NewElem, ptrBeginDeck);
end;
procedure InEndDeck(NewElem: TypeData;
var ptrBeginDeck, ptrEndDeck: PElement);
{Добавление элемента в конец дека}
begin
Ins_LineDoubleList(NewElem, ptrBeginDeck, ptrEndDeck);
end;
procedure FromBeginDeck(NewElem: TypeData;
var ptrBeginDeck: PElement);
{Извлечение элемента из начала дека}
begin
if ptrBeginDeck <> nil then begin
NewElem := ptrBeginDeck^.Data;
Del_LineDoubleList(ptrBeginDeck, ptrBeginDeck); {удаляем первый}
end;
end;
procedure FromEndDeck(NewElem: TypeData,
var ptrBeginDeck, ptrEndDeck: PElement);
{Извлечение элемента из конца дека}
begin
if ptrBeginDeck <> nil then begin
NewElem := ptrEndDeck^.Data;
Del_LineDoubleList(ptrBeginDeck, ptrEndDeck); {удаляем конец}
end;
end;
procedure ClearDeck(var ptrBeginDeck: PElement);
{Очистка дека}
begin
while ptrBeginDeck <> nil do
Del_LineDoubleList(ptrBeginDeck, ptrBeginDeck);
ptrEndDeck := nil;
end;
function EmptyDeck(var ptrBeginDeck: PElement): boolean;
{Проверка пустоты дека}
begin
if ptrBeginDeck = nil then EmptyDeck := true