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