From 77eb46e5ffe8ed45510095ff1dcdca1430d26726 Mon Sep 17 00:00:00 2001 From: Christopher Bohn <bohn@unl.edu> Date: Wed, 26 Jun 2019 22:37:13 -0500 Subject: [PATCH] Robust backing structure, robust size() & push() --- src/main/java/MyStack.java | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/src/main/java/MyStack.java b/src/main/java/MyStack.java index c237f86..d1a485d 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;} } } -- GitLab