How to create a stack in JavaScript?
/* Errors to be thrown when trying to get elements from an empty stack. */ class StackError extends Error { constructor(message) { super(message); this.name = "Stack Error"; } } // Last In First Out stack data structure class Stack { constructor() { this.items = []; // container holding elements } // Getter methods get size() { return this.items.length; } get isEmpty() { return this.size === 0; } // push: push an element onto // top of the stack push(item) { this.items.push(item); } // pop: pop top element from stack pop() { if (this.isEmpty) { throw new StackError("Stack is empty!"); } return this.items.pop(); } // peek: return top element of stack peek() { if (this.isEmpty) { throw new StackError("Stack is empty!"); } return this.items[this.items.length - 1]; } } const stack = new Stack(); try { stack.peek(); // Stack is empty => error } catch (err) { console.log(err.message); // Stack is empty! } // Add elements 1, 2, and 3 to stack for (let idx = 1; idx <= 3; idx++) { stack.push(idx); } console.log("Size:", stack.size); // Size: 3 const stackContent = []; while (!stack.isEmpty) { stackContent.push(stack.pop() + " "); } console.log("Stack:", stackContent.join("")); // Stack: 3 2 1
stack in javascript
class Stack{ constructor() { this.items = []; } push(element) { // push element into the items this.items.push(element); } pop() { if (this.items.length == 0) return "Underflow"; return this.items.pop(); } peek() { return this.items[this.items.length - 1]; } printStack() { var str = ""; for (var i = 0; i < this.items.length; i++) str += this.items[i] + " "; return str; } }
Stack Example In JavaScript
class Stack { constructor() { this.items = []; } push(item) { this.items.unshift(item); } pop() { return this.items.shift(); } peek() { return this.items[0]; } isEmpty() { return this.items.length === 0; } } let s = new Stack(); s.push("one"); s.push("two"); s.push("three"); s.pop("two"); console.log(s);
javascript stack
class Node{ constructor(value){ this.value = value; this.next = null; } } class Stack{ constructor(){ this.top = null; this.bottom = null; this.length = 0; }; peek(){ return this.top; }; push(value){ const newNode = new Node(value); newNode.next = this.top this.top = newNode; if(this.length === 0) this.bottom = newNode; this.length++; } pop(){ if(!this.top) return; if(this.top === this.bottom){ this.top = null; this.bottom = null; this.length--; return } const temp = this.top this.top = temp.next this.length--; } } const a = new Stack();
Source: www.codegrepper.com