JSFiddle - React, Tailwind, and code Playground
by Ron Eaglin
HTML
<input type="textbox" id='value' />
<input type="button" id="push" value="Push to stack" onclick="push()" />
<p id="output"></p>
JavaScript
var Node = function(_content) {
this.next = null;
this.last = null;
this.content = _content;
};
var Stack = function() {
this.top = null;
this.bottom = null;
this.push = function(_content) {
if (this.bottom == null) {
this.bottom = new Node(_content);
this.top = this.bottom;
return this;
}
var addedNode = new Node(_content);
addedNode.last = this.top;
this.top.next = addedNode;
this.top = addedNode;
};
this.pop = function() {
if (this.bottom == null) {
alert("The stack is empty");
return null;
}
if (this.bottom == this.top) {
this.top = this.bottom;
this.top.last = null;;
return this.top;
}
var a = this.top; // hold value for return
this.top = this.top.last;
this.top.next = null;
return a;
};
this.toString = function() {
var str = "";
var node = this.bottom;
while (node != null) {
str += node.content + ", ";
node = node.next;
}
return str;
};
};
function clearDisplay() {
var d = "";
document.getElementById("value").value = "";
};
var stack = new Stack();
var a;
var b;
var c;
var result;
var input;
function push() //added push function
{
input = document.getElementById("value").value;
if (input === "" || input === " ") {
alert("Please enter a number");
}
stack.push(input);
document.getElementById('output').innerHTML = stack.toString();
clearDisplay();
if (input == '+') {
var a = stack.pop();
var b = stack.pop();
stack.push(a + b);
document.getElementById('output').innerHTML = stack.toString();
}
};