Advertisement
GenuineSounds

MinStack

Jan 16th, 2015
240
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 0.66 KB | None | 0 0
  1. class MinStack {
  2.  
  3.     private static Node max = new Node(Integer.MAX_VALUE);
  4.     private Node stack;
  5.  
  6.     public MinStack() {
  7.         stack = new Node(Integer.MAX_VALUE);
  8.         stack.min = max;
  9.     }
  10.  
  11.     public void push(int data) {
  12.         Node node = new Node(data);
  13.         node.next = stack;
  14.         if (data <= stack.min.data)
  15.             node.min = node;
  16.         else
  17.             node.min = stack.min;
  18.         stack = node;
  19.     }
  20.  
  21.     public void pop() {
  22.         stack = stack.next;
  23.     }
  24.  
  25.     public int top() {
  26.         return stack.data;
  27.     }
  28.  
  29.     public int getMin() {
  30.         return stack.min.data;
  31.     }
  32. }
  33.  
  34. class Node {
  35.  
  36.     public int data;
  37.     public Node min;
  38.     public Node next;
  39.  
  40.     public Node(int data) {
  41.         this.data = data;
  42.     }
  43. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement