Stack.js
/* Stack!!⏎
* A stack is exactly what it sounds like. An element gets added to the top of⏎
* the stack and only the element on the top may be removed. This is an example⏎
* of an array implementation of a Stack. So an element can only be added/removed⏎
* from the end of the array.⏎
*/⏎
⏎
// Functions: push, pop, peek, view, length⏎
⏎
// Creates a stack constructor⏎
var Stack = (function () {⏎
function Stack () {⏎
// The top of the Stack⏎
this.top = 0⏎
// The array representation of the stack⏎
this.stack = []⏎
}⏎
⏎
// Adds a value onto the end of the stack⏎
Stack.prototype.push = function (value) {⏎
this.stack[this.top] = value⏎
this.top++⏎
}⏎
⏎
// Removes and returns the value at the end of the stack⏎
Stack.prototype.pop = function () {⏎
if (this.top === 0) {⏎
return 'Stack is Empty'⏎
}⏎
⏎
this.top--⏎
var result = this.stack[this.top]⏎
delete this.stack[this.top]⏎
return result⏎
}⏎
⏎
// Returns the size of the stack⏎
Stack.prototype.size = function () {⏎
return this.top⏎
}⏎
⏎
// Returns the value at the end of the stack⏎
Stack.prototype.peek = function () {⏎
return this.stack[this.top - 1]⏎
}⏎
⏎
// To see all the elements in the stack⏎
Stack.prototype.view = function () {⏎
for (var i = 0; i < this.top; i++) { console.log(this.stack[i]) }⏎
}⏎
⏎
return Stack⏎
}())⏎
⏎
// Implementation⏎
var myStack = new Stack()⏎
⏎
myStack.push(1)⏎
myStack.push(5)⏎
myStack.push(76)⏎
myStack.push(69)⏎
myStack.push(32)⏎
myStack.push(54)⏎
console.log(myStack.size())⏎
console.log(myStack.peek())⏎
console.log(myStack.pop())⏎
console.log(myStack.peek())⏎
console.log(myStack.pop())⏎
console.log(myStack.peek())⏎
myStack.push(55)⏎
console.log(myStack.peek())⏎
myStack.view()⏎