Collection: elements of some proper type T
Operations:
- void push (T t)
- void pop ()
- T top ()
- bool empty ()
- unsigned int size ()
- constructor and destructor
|
Axioms: (for any stack S)
- S.size(), S.empty(),
S.push(t) are always defined
- S.pop() and S.top() are defined iff
S.empty() is false
- S.empty(), S.size(),
S.top() do not change S
- S.empty() is true iff 0 = S.size()
- S.push(t) followed by S.pop()
leaves S unchanged
- after S.push(t), S.top()
returns t
- S.push(t) increases S.size() by
1
- S.pop() decreases S.size() by 1
|