Stack - LIFO
Last In First Out
by tammasr
JavaScript
//Operations on Stack 1. Push 2. Pop 3. Pip (displaying items) 4. Peek
var Stack = function () {
this.count = 0;
this.storage = {};
this.push = function(value) {
this.storage[this.count] = value
this.count++;
}
this.pop = function () {
if (this.count === 0) {
return undefined;
} else {
this.count --; // since the array starts from 0
var result = this.storage[this.count]
delete this.storage[this.count]
return result
}
}
this.size = function () {
return this.count;
}
this.peek = function () {
return this.storage[this.count - 1];
}
}
var letterStack = new Stack();
letterStack.push('A')
letterStack.push('B')
letterStack.push('C')
console.log(letterStack.peek());
console.log(letterStack.pop());
console.log(letterStack.peek());
console.log(letterStack.size());
/* Example : Determine if a string is palindrome or not without using any javascript inbuilt functions*/
var str = "ABCBA"
var reverseStr = "";
var words = [];
for (var i =0; i < str.length; i++) {
words.push(str[i])
}
for (var i =0; i < str.length; i++) {
reverseStr += words.pop()
}
/* str.split('').forEach(function(char, i) {
reverseStr+= char;
}) */
console.log (str, reverseStr)
if (str === reverseStr){
console.log('Given string is a palindrome', str)
}else {
console.log('Given string is NOT a palindrome', str)
}