Java Reference
In-Depth Information
Self-Test Exercises
15. What operations are easier to implement with a doubly linked list compared
with a singly linked list? What operations are more difficult?
16. If the addToStart method from Display 15.25 were removed, how could we still
add a new node to the head of the list?
The Stack Data Structure
A stack is not necessarily a linked data structure, but it can be implemented as a linked list.
A stack is a data structure that removes items in the reverse of the order in which they were
inserted. So if you insert "one" , then "two" , and then "three" into a stack and then
remove them, they will come out in the order "three" , then "two" , and finally "one" .
Stacks are discussed in more detail in Chapter 11. A linked list that inserts and deletes only
at the head of the list (such as the one in Display 15.3 or in Display 15.8) is, in fact, a stack.
You can imagine the stack data structure like a stack of trays in a cafeteria. You can
push a new tray on top of the stack to make a taller stack. Alternately, you can pop the
topmost tray off the stack until there are no more trays to remove. A definition of a
Stack class is shown in Display 15.27 that is based on the linked list from Display 15.3.
A short demonstration program is shown in Display 15.28. The addToStart method has
been renamed to push to use stack terminology. Similarly, the deleteHeadNode method
has been renamed to pop and returns the String from the top of the stack. Although not
shown here to keep the definition simple, it would be appropriate to add other methods
such as peek , clone , or equals or to convert the class to use a generic data type.
stack
push and pop
Stacks
A stack is a last-in/first-out data structure; that is, the data items are retrieved in the opposite
order to which they were placed in the stack.
Display 15.27 A Stack Class (part 1 of 2)
1
import java.util.NoSuchElementException;
2 public class Stack
3{
4
private class Node
5
{
6
private String item;
7
private Node link;
Search WWH ::




Custom Search