Программа формирования дека написана в предположении, что добавление в дек новых элементов производится справа, как и при формировании очереди. В программе учтен случай, когда дек состоит из одного элемента (рис.21).
TypePoinType = ^DekType;
DekType = record
Inf : integer;
LP, RP : PoinType;
end;
VarL,R,Run : PoinType;
k : integer;
F : text;
Begin
.........................
L:=nil; R:=nil;
While notSeekEof(F) do
Begin
Read(F,k); New(Run);
Run^.Inf:=k; Run^.RP:=nil;
IfL=nil then
Begin
Run^.LP:=nil; L:=Run;
End
Else
Begin
R^.RP:=Run; Run^.LP:=R
End;
R:=Run;
End;
Значение L = nilозначает, что из файла вводится первый элемент, включаемый в дек (возможно, он останется единственным). Методика формирования дека в основном аналогична формированию очереди, но с учетом того, что элемент дека имеет два указателя.
2. Просмотр дека возможен как слева направо, так и справа налево и выполняется аналогично просмотру очереди.
3. Добавление и удаление элементов дека по определению возможны на обоих его концах и выполняются в основном аналогично соответствующим операциям для стека и очереди, но программная реализация здесь проще из-за того, что каждому элементу дека известны адреса его соседей слева и справа.