हमें इनपुट के रूप में एक पूर्णांक संख्या संख्या दी गई है। लक्ष्य स्टैक का उपयोग करके संख्या का उल्टा पता लगाना है।
ढेर :- स्टैक C++ में एक डेटा संरचना है जो डेटा को LIFO (लास्ट इन फर्स्ट आउट) तरीके से स्टोर करती है। स्टैक के प्रमुख संचालन हैं-:
घोषणा-:स्टैक
-
top() . का उपयोग करके शीर्ष ढूँढना . फ़ंक्शन stck.top() स्टैक में शीर्ष तत्व का संदर्भ देता है
-
पॉप () . का उपयोग करके शीर्ष को हटाना . फ़ंक्शन स्टैक से सबसे ऊपरी तत्व को हटा देता है
-
पुश () . का उपयोग करके तत्व को शीर्ष पर जोड़ना . फ़ंक्शन stck.push(value) स्टैक में आइटम मान जोड़ता है। मान stck प्रकार का होना चाहिए।
-
खाली () . का उपयोग करके जांचें कि स्टैक खाली है या नहीं . स्टैक खाली होने पर फ़ंक्शन stck.empty() सत्य लौटाता है।
उदाहरण
इनपुट - संख्या =33267
आउटपुट - संख्या का उल्टा है:76233
स्पष्टीकरण -
पहले हम सभी तत्वों को स्टैक करने के लिए पुश करेंगे
7 - 6 - 2 - 3 - 3 ऊपर
7 * 10000 + 6 * 1000 + 2*100 + 3*10 + 3*1
=70000 + 6000 + 200 + 30 + 3
=76233
इनपुट - संख्या =111000
आउटपुट - संख्या का उल्टा है:111
स्पष्टीकरण -
पहले हम सभी तत्वों को स्टैक करने के लिए पुश करेंगे
0 - 0 - 0 - 1 - 1 - 1 शीर्ष
0 * 100000 + 0 * 10000 + 0*1000 + 1*100 + 1*10 + 1*1
=0 + 0 + 0 + 100 + 10 + 1
=111
नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है
इस दृष्टिकोण में हम पहले इनपुट संख्या के शेष भाग लेंगे और स्टैक पर पुश करेंगे और संख्या को 10 तक कम कर देंगे जब तक कि संख्या 0 न हो जाए। इस तरह स्टैक को पहले अंक के रूप में शीर्ष से भर दिया जाएगा।
-
इनपुट नंबर संख्या लें।
-
स्टैक
stck का उपयोग करके पूर्णांकों के लिए खाली स्टैक लें। -
फ़ंक्शन pushDigts(int num1) num1 लेता है और इसे शीर्ष पर पहले अंक के साथ स्टैक में जोड़ता है।
-
रेम को वेरिएबल के रूप में लें।
-
थोड़ी देर के लूप का उपयोग करके जांचें कि क्या num1 गैर-शून्य है, यदि सत्य है तो रेम =num1%10 सेट करें।
-
रेम को स्टैक करने के लिए पुश करें।
-
दूसरे अंक वगैरह के लिए num1 को 10 से घटाएं।
-
अब फ़ंक्शन revrseNum() के साथ स्टैक के तत्वों का उपयोग करके संख्या को उलट दें।
-
वेरिएबल रेवर्स लें, टॉप, टेम्प, i.
-
जबकि ढेर खाली नहीं है
-
सबसे ऊपरी तत्व को top=stck.top() के रूप में लें।
-
Stck.pop() का उपयोग करके स्टैक को कम करें।
-
अस्थायी सेट करें=topp*i.
-
रिवर्स में टेम्परेचर जोड़ें।
-
100 के गुणजों में i*10 से i बढ़ाएँ।
-
अंत में इनपुट संख्या के रिवर्स को रिवर्स के रूप में लौटाएं।
-
मुख्य के अंदर प्राप्त प्रिंट परिणाम।
उदाहरण
#include <bits/stdc++.h> using namespace std; stack <int> stck; void pushDigts(int num1){ int rem; while (num1 > 0){ rem=num1 % 10; stck.push(rem); num1 = num1 / 10; } } int revrseNum(){ int revrs = 0; int i = 1; int temp; int topp; while (!stck.empty()){ topp=stck.top(); stck.pop(); temp=topp*i; revrs = revrs + temp; i *= 10; } return revrs; } int main(){ int Num = 43556; pushDigts(Num); cout<<"Reverse of number is: "<<revrseNum(); return 0; }
आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा
Reverse of number is: 65534