Class UniqueStack<E>

All Implemented Interfaces:
Cloneable, Iterable<E>, Collection<E>, List<E>, SequencedCollection<E>, Set<E>

public class UniqueStack<E> extends UniqueVector<E>
The UniqueStack class represents a last-in-first-out stack of unique objects.

Conforms to the JDK 1.2 Collections API.

Author:
C. Scott Ananian <cananian@alumni.princeton.edu>
  • Constructor Details

    • UniqueStack

      public UniqueStack()
      Creates a UniqueStack.
    • UniqueStack

      public UniqueStack(Collection<? extends E> c)
      Constructs a UniqueStack containing the elements of the specified Collection, in the order they are returned by the collection's iterator in LIFO order. That is, the first item returned by the collection iterator will be at the bottom of the stack, and thus last to be popped. Duplicate elements in c are skipped.
  • Method Details

    • push

      public void push(E item)
      Pushes an item onto the top of this stack, if it is unique. Otherwise, does nothing.
      Parameters:
      item - the item to be pushed onto this stack.
    • pop

      public E pop()
      Removes the object at the top of this stack and returns that object as the value of this function.
      Returns:
      The object at the top of this stack.
      Throws:
      EmptyStackException - if this empty.
    • peek

      public E peek()
      Looks at the object at the top of this stack without removing it from the stack.
      Returns:
      the object at the top of this stack.
      Throws:
      EmptyStackException - if this stack is empty.
    • empty

      public boolean empty()
      Tests if this stack is empty.
      Returns:
      true if this stack is empty; false otherwise.
    • search

      public int search(Object o)
      Returns where an object is on this stack.
      Parameters:
      o - the desired object.
      Returns:
      the distance from the top of the stack where the object is located; the return value -1 indicates that the object is not on the stack.