structure5
Interface Stack<E>

All Superinterfaces:
java.lang.Iterable<E>, Linear<E>, Structure<E>
All Known Implementing Classes:
AbstractStack, StackArray, StackList, StackVector

public interface Stack<E>
extends Linear<E>

An interface describing a Last-In, First-Out structure. Stacks are typically used to store the state of a recursively solved problem. The structure package provides several implementations of the Stack interface, each of which has its particular strengths and weaknesses.

Example usage:

To reverse a string using a stack, we would use the following:

 public static void main(String[] arguments)
 {
     if(arguments.length > 0){
         Stack reverseStack = new StackList();
         String s = arguments[0];
          
         for(int i=0; i < s.length(); i++){
             reverseStack.push(new Character(s.charAt(i)));
         }

         while(!reverseStack.empty()){
             System.out.print(reverseStack.pop());
         }

         System.out.println();
     }
 }
 


Method Summary
 void add(E item)
          Add an element from the top of the stack.
 boolean empty()
          Returns true iff the stack is empty.
 E get()
          Fetch a reference to the top element of the stack.
 E getFirst()
          Fetch a reference to the top element of the stack.
 E peek()
          Fetch a reference to the top element of the stack.
 E pop()
          Remove an element from the top of the stack.
 void push(E item)
          Add an element to top of stack.
 E remove()
          Remove an element from the top of the stack.
 int size()
          Returns the number of elements in the stack.
 
Methods inherited from interface structure5.Structure
clear, contains, elements, isEmpty, iterator, remove, values
 

Method Detail

add

void add(E item)
Add an element from the top of the stack.

Specified by:
add in interface Linear<E>
Specified by:
add in interface Structure<E>
Parameters:
item - The element to be added to the stack top.
See Also:
push(E)
Postcondition:
item is added to stack will be popped next if no intervening add

push

void push(E item)
Add an element to top of stack.

Parameters:
item - The value to be added to the top of the stack.
Postcondition:
item is added to stack will be popped next if no intervening push

remove

E remove()
Remove an element from the top of the stack.

Specified by:
remove in interface Linear<E>
Returns:
The item removed from the top of the stack.
See Also:
pop()
Precondition:
stack is not empty
Postcondition:
most recently added item is removed and returned

pop

E pop()
Remove an element from the top of the stack.

Returns:
A reference to the removed element.
Precondition:
stack is not empty
Postcondition:
most recently pushed item is removed and returned

get

E get()
Fetch a reference to the top element of the stack.

Specified by:
get in interface Linear<E>
Returns:
A reference to the top element of the stack.
Precondition:
stack is not empty
Postcondition:
top value (next to be popped) is returned

getFirst

E getFirst()
Fetch a reference to the top element of the stack.

Returns:
A reference to the top element of the stack.
Precondition:
stack is not empty
Postcondition:
top value (next to be popped) is returned

peek

E peek()
Fetch a reference to the top element of the stack.

Returns:
A reference to the top element of the stack.
Precondition:
stack is not empty
Postcondition:
top value (next to be popped) is returned

empty

boolean empty()
Returns true iff the stack is empty. Provided for compatibility with java.util.Vector.empty.

Specified by:
empty in interface Linear<E>
Returns:
True iff the stack is empty.
Postcondition:
returns true if and only if the stack is empty

size

int size()
Returns the number of elements in the stack.

Specified by:
size in interface Linear<E>
Specified by:
size in interface Structure<E>
Returns:
number of elements in stack.
Postcondition:
returns the number of elements in the stack