Advertisement
Guest User

Untitled

a guest
Mar 30th, 2015
194
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.66 KB | None | 0 0
  1. package lab1_InterfaceStack;
  2.  
  3. public class MyStackClass implements MyStack, Iterable<Object> {
  4.  
  5.     private class Element {
  6.         private Object data;
  7.         private Element next;
  8.  
  9.         public Element(Object data) {
  10.             this.data = data;
  11.             this.next = null;
  12.         }
  13.        
  14.         public Element(Object _data, Element _next) {
  15.             this.data = _data;
  16.             this.next = _next;
  17.         }
  18.  
  19.         public Object getData() {
  20.             return this.data;
  21.         }
  22.  
  23.         public Element getNext() {
  24.             return this.next;
  25.         }
  26.     }
  27.  
  28.     private Element last_element;
  29.     private int size;
  30.  
  31.     public MyStackClass() {
  32.         last_element = null;
  33.         size = 0;
  34.     }
  35.  
  36.     @Override
  37.     public Object pop() {
  38.         if (size == 0)
  39.             return null;
  40.         Object _obj = last_element.getData();
  41.         last_element = last_element.getNext();
  42.         size--;
  43.         return _obj;
  44.     }
  45.  
  46.     @Override
  47.     public void push(Object o) {
  48.         if (size == 0) {
  49.             last_element = new Element(o);
  50.         }
  51.         else {
  52.             Element elem = new Element(o, last_element);
  53.             last_element = elem;
  54.         }
  55.         size++;
  56.     }
  57.  
  58.     @Override
  59.     public int size() {
  60.         return size;
  61.     }
  62.  
  63.     @Override
  64.     public Iterator<Object> iterator() {
  65.         return new Iterator<Object>() {
  66.             private Element current = last_element;
  67.  
  68.             @Override
  69.             public boolean hasNext() {
  70.                 return current.getNext() != null;
  71.             }
  72.  
  73.             @Override
  74.             public Object next() {
  75.                 Object temp = current.getData();
  76.                 current = current.getNext();
  77.                 return temp;
  78.             }
  79.  
  80.             @Override
  81.             public void remove() {
  82.                 throw new UnsupportedOperationException();
  83.             }
  84.         };
  85.     }
  86. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement