public class LinkedStack<Item> extends Object implements Iterable<Item>
LinkedStack
class represents a last-in-first-out (LIFO) stack of
generic items.
It supports the usual push and pop operations, along with methods
for peeking at the top item, testing if the stack is empty, and iterating through
the items in LIFO order.
This implementation uses a singly linked list with a non-static nested class for
linked-list nodes. See Stack
for a version that uses a static nested class.
The push, pop, peek, size, and is-empty
operations all take constant time in the worst case.
For additional documentation, see Section 1.3 of Algorithms, 4th Edition by Robert Sedgewick and Kevin Wayne.
Constructor and Description |
---|
LinkedStack()
Initializes an empty stack.
|
Modifier and Type | Method and Description |
---|---|
boolean |
isEmpty()
Is this stack empty?
|
Iterator<Item> |
iterator()
Returns an iterator to this stack that iterates through the items in LIFO order.
|
static void |
main(String[] args)
Unit tests the
LinkedStack data type. |
Item |
peek()
Returns (but does not remove) the item most recently added to this stack.
|
Item |
pop()
Removes and returns the item most recently added to this stack.
|
void |
push(Item item)
Adds the item to this stack.
|
int |
size()
Returns the number of items in the stack.
|
String |
toString()
Returns a string representation of this stack.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
forEach, spliterator
public boolean isEmpty()
public int size()
public void push(Item item)
item
- the item to addpublic Item pop()
NoSuchElementException
- if this stack is emptypublic Item peek()
NoSuchElementException
- if this stack is emptypublic String toString()
public Iterator<Item> iterator()
public static void main(String[] args)
LinkedStack
data type.args
- the command-line arguments