[ Web Proxy ]
URL:
Viewing: https://raw.githubusercontent.com/CSapprenticeWT/OnJava8-Examples/master/generics/LinkedStack.java [Back]  [Original]

// generics/LinkedStack.java
// (c)2021 MindView LLC: see Copyright.txt
// We make no guarantees that this code is fit for any purpose.
// Visit http://OnJava8.com for more book information.
// A stack implemented with an internal linked structure

public class LinkedStack {
  private static class Node {
    U item;
    Node next;
    Node() { item = null; next = null; }
    Node(U item, Node next) {
      this.item = item;
      this.next = next;
    }
    boolean end() {
      return item == null && next == null;
    }
  }
  private Node top = new Node(); // End sentinel
  public void push(T item) {
    top = new Node(item, top);
  }
  public T pop() {
    T result = top.item;
    if(!top.end())
      top = top.next;
    return result;
  }
  public static void main(String[] args) {
    LinkedStack lss = new LinkedStack();
    for(String s : "Phasers on stun!".split(" "))
      lss.push(s);
    String s;
    while((s = lss.pop()) != null)
      System.out.println(s);
  }
}
/* Output:
stun!
on
Phasers
*/

Web Proxy Viewer  |  New URL  |  Original Page