एप्लिकेशन प्रोग्रामिंग में आज व्यापक रूप से उपयोग की जाने वाली डेटा संरचनाओं में से एक स्टैक है। इसकी ख़ासियत तत्वों को व्यवस्थित करने का सिद्धांत है, जिसमें उनका जोड़ और निष्कासन एक समय में केवल एक ही संभव है और केवल "शीर्ष" के माध्यम से, यानी LIFO सिद्धांत के अनुसार। लेकिन कभी-कभी एक ही बार में पूरे ढेर को साफ करना आवश्यक होता है।
ज़रूरी
- - टेक्स्ट एडिटर या आईडीई;
- - प्रयुक्त प्रोग्रामिंग भाषा से अनुवादक।
निर्देश
चरण 1
स्टैक ऑब्जेक्ट्स पर विधियों का उपयोग करें जिन्हें विशेष रूप से स्टैक को साफ करने के लिए डिज़ाइन किया गया है। वे विभिन्न पुस्तकालयों और ढांचे के अधिकांश संबंधित वर्गों में मौजूद हैं। उदाहरण के लिए,. NET स्टैक वर्ग में एक स्पष्ट विधि है। सी # में इसके आवेदन का एक उदाहरण इस तरह दिख सकता है:
स्टैक ओस्टैक = नया स्टैक (); // एक स्टैक ऑब्जेक्ट बनाएं
oStack. Push ("000"); // स्टैक भरें
oStack. Push ("111");
ओस्टैक। साफ़ करें (); // स्टैक को साफ़ करें
चरण 2
कंटेनर वर्गों के तत्वों की संख्या को बदलने के तरीके, जिन पर स्टैक कक्षाओं की कार्यक्षमता अक्सर निर्मित होती है, का उपयोग सफाई के लिए भी किया जा सकता है। आपको केवल तत्वों की वर्तमान संख्या को शून्य तक कम करने की आवश्यकता है। उदाहरण के लिए, Qt टेम्पलेट वर्ग QStack QVector टेम्पलेट वर्ग से विरासत में मिला है, जिसमें एक आकार बदलने की विधि है। इसके उपयोग का एक उदाहरण इस प्रकार हो सकता है:
क्यूस्टैक ओस्टैक; // स्टैक ऑब्जेक्ट की घोषणा
के लिए (int i = 0; i <10; i ++) oStack.push (i); // स्टैक भरें
oStack.resize (0); // स्टैक को साफ़ करें
चरण 3
स्टैक ऑब्जेक्ट की सफाई आमतौर पर असाइनमेंट ऑपरेटर के माध्यम से की जा सकती है, जिसे अक्सर संबंधित कक्षाओं में लागू किया जाता है। ऐसा करने के लिए, साफ़ किए जाने वाले स्टैक की वस्तु को डिफ़ॉल्ट कंस्ट्रक्टर द्वारा बनाई गई एक अस्थायी वस्तु सौंपी जानी चाहिए। उदाहरण के लिए, C ++ मानक लाइब्रेरी स्टैक टेम्प्लेटेड क्लास, जो कंटेनर टेम्प्लेटेड क्लास के लिए एक एडेप्टर है, में संख्या को मनमाने ढंग से बदलने या सभी तत्वों को हटाने के तरीके नहीं हैं। आप इसे इस तरह साफ़ कर सकते हैं:
एसटीडी:: स्टैक <इंट, एसटीडी:: सूची> ओस्टैक; // स्टैक ऑब्जेक्ट की घोषणा
के लिए (int i = 0; i <10; i ++) oStack.push (i); // स्टैक भरें
ओस्टैक = एसटीडी:: स्टैक
चरण 4
डिफ़ॉल्ट कंस्ट्रक्टर द्वारा बनाए गए ऑब्जेक्ट तर्क के साथ नए ऑपरेटर का उपयोग करके कॉपी कंस्ट्रक्टर को कॉल करके स्टैक ऑब्जेक्ट को साफ़ करें:
एसटीडी:: स्टैक <इंट, एसटीडी:: सूची> ओस्टैक; // स्टैक ऑब्जेक्ट की घोषणा
के लिए (int i = 0; i <10; i ++) oStack.push (i); // स्टैक भरें
नया एसटीडी:: स्टैक
चरण 5
उपयुक्त विधियों का उपयोग करके सभी तत्वों को क्रमिक रूप से पुनर्प्राप्त करके स्टैक को साफ़ किया जा सकता है:
एसटीडी:: स्टैक <इंट, एसटीडी:: सूची> ओस्टैक; // स्टैक ऑब्जेक्ट की घोषणा
के लिए (int i = 0; i <10; i ++) oStack.push (i); // स्टैक भरें
जबकि (! oStack.empty ()) oStack.pop (); // स्टैक को साफ़ करें
हालांकि, इस दृष्टिकोण में एक समय जटिलता है जो रैखिक रूप से स्टैक में तत्वों की संख्या पर निर्भर करती है। इसलिए, इसका उपयोग तर्कसंगत नहीं है।