© 1998-2002 McGraw-Hill

structure
Class StackArray

java.lang.Object
  |
  +--structure.AbstractStructure
        |
        +--structure.AbstractLinear
              |
              +--structure.AbstractStack
                    |
                    +--structure.StackArray
All Implemented Interfaces:
Linear, Stack, Structure

public class StackArray
extends AbstractStack
implements Stack

An implementation of a stack, based on array. The head of the stack is stored in the first position of the array, allowing the stack to grow and shrink in constant time. This stack implementation is ideal for applications that require a stack with a known maximum size that expands in constant time.

Example usage:

To reverse a string, we would use the following:

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

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

	   System.out.println();
     }
 }
 

See Also:
Stack, StackVector, StackList, AbstractStack

Field Summary
protected  Object[] data
          The array of value references.
protected  int top
          An index to the top element of the stack.
 
Constructor Summary
StackArray(int size)
          Construct a stack capable of holding at least size elements.
 
Method Summary
 void add(Object item)
          Add a value to the top of the stack.
 void clear()
          Remove all elements from the stack.
 Object get()
          Get a reference to the top value in the stack.
 boolean isEmpty()
          Determine if the stack is empty.
 boolean isFull()
          Determine if the stack is full.
 Iterator iterator()
          Returns an iterator for traversing the structure.
 Object remove()
          Remove a value from the top of the stack.
 int size()
          Determine the number of elements in the stack.
 String toString()
          Construct a string representation of the stack.
 
Methods inherited from class structure.AbstractStack
getFirst, peek, pop, push
 
Methods inherited from class structure.AbstractLinear
empty, remove
 
Methods inherited from class structure.AbstractStructure
contains, elements, hashCode, values
 
Methods inherited from class java.lang.Object
, clone, equals, finalize, getClass, notify, notifyAll, registerNatives, wait, wait, wait
 
Methods inherited from interface structure.Stack
empty, getFirst, peek, pop, push
 
Methods inherited from interface structure.Structure
contains, elements, remove, values
 

Field Detail

top

protected int top
An index to the top element of the stack.

data

protected Object[] data
The array of value references. Top of the stack is higher in array.
Constructor Detail

StackArray

public StackArray(int size)
Construct a stack capable of holding at least size elements.
Parameters:
size - The maximum size of the stack.
Method Detail

clear

public void clear()
Remove all elements from the stack.
Specified by:
clear in interface Structure
Postcondition:
removes all elements from stack

add

public void add(Object item)
Add a value to the top of the stack.
Specified by:
add in interface Stack
Parameters:
item - The value to be added.
Postcondition:
adds an element to stack; Will be next element popped if no intervening push
See Also:
AbstractStack.push(java.lang.Object)

remove

public Object remove()
Remove a value from the top of the stack.
Specified by:
remove in interface Stack
Precondition:
stack is not empty
Postcondition:
removes and returns the top element from stack;
Returns:
The value removed from the top of the stack.
See Also:
AbstractStack.pop()

get

public Object get()
Get a reference to the top value in the stack.
Specified by:
get in interface Stack
Precondition:
stack is not empty
Postcondition:
returns the top element (most recently pushed) from stack
Returns:
A reference to the top element of the top of the stack.

iterator

public Iterator iterator()
Description copied from interface: Structure
Returns an iterator for traversing the structure.
Specified by:
iterator in interface Structure
Following copied from interface: structure.Structure
Returns:
an iterator for traversing the structure
See Also:
AbstractIterator, Iterator, Enumeration, Structure.elements()

size

public int size()
Determine the number of elements in the stack.
Specified by:
size in interface Stack
Postcondition:
returns the size of the stack
Returns:
The number of values within the stack.

isEmpty

public boolean isEmpty()
Determine if the stack is empty.
Specified by:
isEmpty in interface Structure
Overrides:
isEmpty in class AbstractStructure
Postcondition:
returns true iff the stack is empty
Returns:
True iff the stack is empty.
See Also:
AbstractLinear.empty()

isFull

public boolean isFull()
Determine if the stack is full.
Postcondition:
returns true iff the stack is empty
Returns:
True iff there is no more room in the stack.

toString

public String toString()
Construct a string representation of the stack.
Overrides:
toString in class Object
Postcondition:
returns a string representation of stack
Returns:
A string representing the stack.

© 1998-2002 McGraw-Hill