The <#8663#>Queue<#8663#> and <#8664#>Stack<#8664#> classes are derived from the abstract
base class <#8665#>Deque<#8665#>, which inherits privately from <#8666#>List<#8666#> to
screen out all operations that allow access to elements other
than the first element. <#8667#>Deque<#8667#> pointers can be used to point
to either <#8668#>Stack<#8668#> or <#8669#>Queue<#8669#> objects. This flexibility is helpful
in algorithms such as maximum flow, in which the algorithm user might
wish to select at run time which storage protocal to use.
Several <#8670#>List<#8670#> operations are allowed through the filter for use by
<#8671#>Stacks<#8671#> and <#8672#>Queues<#8672#>. Those accessible through <#8673#>Deque<#8673#> pointers are
listed below.
Note that the 61 constructors for <#8674#>Stacks<#8674#> and
<#8675#>Queues<#8675#> are more restricted than those of other <#8676#>Container<#8676#> classes.
Copies are constructed only from like objects, not arbitrary
<#8677#>Containers<#8677#>.
<#8700#>
<#8702#><#8702#>
<#8707#>
Returns the head of the <#8786#>Deque<#8786#> without removing it. <#8796#>O(1)<#8796#>
<#8707#>
<#8700#>
<#8712#>
<#8714#>
void |
insert(Item& e) = 0; |
<#8714#>
<#8719#>
Inserts <#8721#>e<#8721#> at the front of the list if a <#8787#>Stack<#8787#> is referenced (<#8798#>O(1)<#8798#>)
and at the end of the list if a <#8788#>Queue<#8788#> is (<#8800#>O(n)<#8800#>).
<#8719#>
<#8712#>
<#8725#>
<#8727#><#8727#>
<#8732#>
Removes the element at the front of the list and returns it. <#8802#>O(1)<#8802#>
<#8732#>
<#8725#>
<#8737#>
<#8739#><#8739#>
<#8744#>
Is the <#8789#>Deque<#8789#> empty? <#8804#>O(1)<#8804#>
<#8744#>
<#8737#>
<#8749#>
<#8751#><#8751#>
<#8756#>
Return FALSE. <#8806#>O(1)<#8806#>.
<#8756#>
<#8749#>
<#8761#>
<#8763#><#8763#>
<#8768#>
Remove all the elements from the <#8790#>Deque<#8790#>. <#8808#>O(n)<#8808#>
<#8768#>
<#8761#>
<#8773#>
<#8775#><#8775#>
<#8780#>
Produce a human-readable display of the data
structure. <#8810#>O(n)<#8810#>
<#8780#>
<#8773#>