एक स्टैक एक सार डेटा प्रकार (ADT) है, जो आमतौर पर अधिकांश प्रोग्रामिंग भाषाओं में उपयोग किया जाता है। इसे स्टैक नाम दिया गया है क्योंकि यह वास्तविक दुनिया के स्टैक की तरह व्यवहार करता है, उदाहरण के लिए - ताश का एक डेक या प्लेटों का ढेर, आदि।
एक स्टैक केवल एक छोर पर संचालन की अनुमति देता है। यह फीचर इसे LIFO डेटा स्ट्रक्चर बनाता है। LIFO का मतलब लास्ट-इन-फर्स्ट-आउट है। यहां, जो तत्व सबसे अंत में रखा (डाला या जोड़ा) जाता है, उसे पहले एक्सेस किया जाता है। स्टैक शब्दावली में, इंसर्शन ऑपरेशन को PUSH ऑपरेशन कहा जाता है और रिमूवल ऑपरेशन को POP ऑपरेशन कहा जाता है।
निम्नलिखित आरेख स्टैक पर संचालन दिखाता है -
स्टैक का प्रतिनिधित्व करने के लिए पूर्ण जावास्क्रिप्ट वर्ग निम्नलिखित है -
उदाहरण
क्लास स्टैक {कन्स्ट्रक्टर (मैक्ससाइज) {// डिफ़ॉल्ट अधिकतम आकार सेट करें यदि प्रदान नहीं किया गया है (isNaN (maxSize)) {maxSize =10; } यह। अधिकतम आकार =अधिकतम आकार; // एक सरणी शुरू करें जिसमें स्टैक मान होंगे। यह कंटेनर =[]; } प्रदर्शन () { कंसोल.लॉग (यह कंटेनर); } isEmpty() { इसे लौटाएं। कंटेनर। लंबाई ===0; } isFull() { इसे लौटाएं। कंटेनर। लंबाई> =यह। अधिकतम आकार; } पुश (तत्व) {// जांचें कि क्या स्टैक भरा हुआ है अगर (this.isFull ()) {कंसोल.लॉग ("स्टैक ओवरफ्लो!") वापसी; } this.container.push(element) } pop() {// चेक करें कि क्या खाली है अगर (this.isEmpty ()) { कंसोल.लॉग ("स्टैक अंडरफ्लो!") रिटर्न; } this.container.pop ()} झांकना () { अगर (isEmpty ()) { कंसोल.लॉग ("स्टैक अंडरफ्लो!"); वापसी; } इसे लौटाएं। कंटेनर [यह कंटेनर। लंबाई - 1]; } स्पष्ट () { यह कंटेनर =[]; }}पूर्व>