home *** CD-ROM | disk | FTP | other *** search
-
- {\magonebf 3.5 Bounded Stacks (b\_stack) }
-
- An instance $S$ of the data type $b\_stack$ is a stack (see section 2.3)
- of bounded size.
-
- \bigskip
- {\bf 1. Declaration of a bounded stack type}
-
- \decl b\_stack E
-
- introduces a new data type with name \name\ consisting all bounded stacks with
- element type $E$.
-
-
- \bigskip
- {\bf 2. Creation of a bounded stack}
-
- \create S (n)
-
- creates an instance \var\ of type \name\ that can hold up to $n$ elements.
- \var\ is initialized with the empty stack.
-
-
- {\bf 3. \operations}
- \+\cleartabs & \hskip 2truecm & \hskip 4truecm &\cr
- \+\op E top {}
- {returns the top element of \var}
- \+\nop {\precond $S$ is not empty.}
- \smallskip
- \+\op E pop {}
- {deletes and returns the top element of \var}
- \+\nop {\precond $S$ is not empty.}
- \smallskip
- \+\op E push {E\ x}
- {adds $x$ as new top element to \var}
- \+\nop {\precond $S$.size() $< n$.}
- \smallskip
- \+\op void clear {}
- {makes \var\ the empty stack.}
- \smallskip
- \+\op int size {}
- {returns the size of \var.}
- \smallskip
- \+\op bool empty {}
- {returns true if \var\ is empty, false otherwise.}
-
- \bigskip
- {\bf 4. Implementation}
-
- Bounded Stacks are implemented by \CC vectors. All operations take
- time $O(1)$. The space requirement is $O(n)$.
-
-