diff --git a/src/main/java/MyStack.java b/src/main/java/MyStack.java index c237f86277f43040bfcd4b68b1afa08d9806ebc1..d1a485d781842c310fa3769b2f39dbbc8e7ea7d2 100644 --- a/src/main/java/MyStack.java +++ b/src/main/java/MyStack.java @@ -1,17 +1,33 @@ public class MyStack { - private Object element; + private Node top; public MyStack() { super(); - element = null; + top = new Node(null, null); } public int size() { - return (element == null) ? 0 : 1; + return top.getHeight(); } public void push(Object element) { - this.element = element; + this.top = new Node(element, top); + } + + private class Node { + private Object payload; + private int height; + private Node previous; + + Node(Object payload, Node oldTop) { + this.payload = payload; + this.previous = oldTop; + height = (oldTop == null) ? 0 : oldTop.height+1; + } + + Object getPayload() {return payload;} + int getHeight() {return height;} + Node getPrevious() {return previous;} } }