स्टैक एक एब्स्ट्रैक्ट डेटा टाइप (ADT) है, जिसका उपयोग अधिकांश प्रोग्रामिंग भाषाओं में आमतौर पर किया जाता है। इसका नाम स्टैक इसलिए पड़ा क्योंकि यह वास्तविक दुनिया के स्टैक की तरह व्यवहार करता है, उदाहरण के लिए - ताश के पत्तों का डेक या प्लेटों का ढेर।

स्टैक केवल एक छोर पर ऑपरेशन की अनुमति देता है। यह सुविधा इसे LIFO डेटा स्ट्रक्चर बनाती है। LIFO का अर्थ है लास्ट-इन-फर्स्ट-आउट। यहां, जो एलिमेंट अंत में रखा जाता है (इन्सर्ट या जोड़ा जाता है), वह पहले एक्सेस किया जाता है। स्टैक टर्मिनोलॉजी में, इन्सर्शन ऑपरेशन को PUSH ऑपरेशन कहा जाता है और रिमूवल ऑपरेशन को POP ऑपरेशन कहा जाता है।
निम्न आरेख स्टैक पर ऑपरेशन्स दिखाता है:

स्टैक को दर्शाने के लिए पूर्ण JavaScript क्लास निम्न है:
उदाहरण
class Stack { constructor(maxSize) { // यदि प्रदान नहीं किया गया तो डिफ़ॉल्ट अधिकतम आकार सेट करें if (isNaN(maxSize)) { maxSize = 10; } this.maxSize = maxSize; // एक एरे इनिशियलाइज़ करें जिसमें स्टैक मान होंगे। this.container = []; } display() { console.log(this.container); } isEmpty() { return this.container.length === 0; } isFull() { return this.container.length >= this.maxSize; } push(element) { // जांचें कि स्टैक भरा हुआ है या नहीं if (this.isFull()) { console.log("Stack Overflow!") return; } this.container.push(element) } pop() { // जांचें कि खाली है या नहीं if (this.isEmpty()) { console.log("Stack Underflow!") return; } this.container.pop() } peek() { if (isEmpty()) { console.log("Stack Underflow!"); return; } return this.container[this.container.length - 1]; } clear() { this.container = []; } }