 
Summary: PopStacks in Parallel
M.D. Atkinson
J.R. Sack
December 12, 2001
1 Introduction
A stack may be viewed as a machine with two instructions POP and PUSH
that transforms an input sequence of data items into an output sequence. The
PUSH operation transfers the next item of an input stream into the stack and
the POP operation transfers the most recently pushed item from the stack to
an output stream. When the entire input stream has been transferred, via the
stack, to the output stream, the output sequence will then be a permutation of
the input sequence.
The set of possible permutations which arise in this way characterises the eect
of a stack on its data and was rst studied by Knuth [4]. Shortly afterwards
Tarjan [7], Even and Itai [3], and Pratt [5] studied the eect of having several
stacks either in series or in parallel. Since the actual values of the data items are
unimportant (only that they be distinct) it is usual to denote them by 1; 2; : : : ;
although occasionally other data sets need to be considered. It is convenient to
formulate the central questions that arise in terms of sorting:
1. Which permutations can be sorted into increasing order?
