Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package lab1_InterfaceStack;
- public class MyStackClass implements MyStack, Iterable<Object> {
- private class Element {
- private Object data;
- private Element next;
- public Element(Object data) {
- this.data = data;
- this.next = null;
- }
- public Element(Object _data, Element _next) {
- this.data = _data;
- this.next = _next;
- }
- public Object getData() {
- return this.data;
- }
- public Element getNext() {
- return this.next;
- }
- }
- private Element last_element;
- private int size;
- public MyStackClass() {
- last_element = null;
- size = 0;
- }
- @Override
- public Object pop() {
- if (size == 0)
- return null;
- Object _obj = last_element.getData();
- last_element = last_element.getNext();
- size--;
- return _obj;
- }
- @Override
- public void push(Object o) {
- if (size == 0) {
- last_element = new Element(o);
- }
- else {
- Element elem = new Element(o, last_element);
- last_element = elem;
- }
- size++;
- }
- @Override
- public int size() {
- return size;
- }
- @Override
- public Iterator<Object> iterator() {
- return new Iterator<Object>() {
- private Element current = last_element;
- @Override
- public boolean hasNext() {
- return current.getNext() != null;
- }
- @Override
- public Object next() {
- Object temp = current.getData();
- current = current.getNext();
- return temp;
- }
- @Override
- public void remove() {
- throw new UnsupportedOperationException();
- }
- };
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement