মডিউল ১৫-৬ঃ Reverse Stack Using Recursion (CodingNinjas)
void reverseStack(stack<int> &s)
{
if (s.empty()) // স্ট্যাক এম্পটি না হওয়া পর্যন্ত রিকারশন চলবে।
return;
int x = s.top(); // স্ট্যাকের টপের ভেলু সেইভ করে রাখা হচ্ছে।
s.pop(); // স্ট্যাক পপ করে দেওয়া হচ্ছে।
reverseStack(s); // টপের ভেলু পপ করার পর রিকারশন কল করে স্ট্যাককে দিয়ে দেওয়া হচ্ছে।
stack<int> cp; // নতুন স্ট্যাক নেওয়া হচ্ছে।
while (!s.empty()) // পূর্বের স্ট্যাক থেকে নতুন স্ট্যাকে ভেলু পুশ করা হচ্ছে।
{
cp.push(s.top());
s.pop();
}
cp.push(x); // টপের ভেলু যেটি সেইভ করে রাখা হয়েছিল তা পুশ করা হচ্ছে নতুন স্ট্যাকে।
while (!cp.empty()) // নতুন স্ট্যাক থেকে পূর্বের স্ট্যাকে ভেলু পুশ করা হচ্ছে।
{
s.push(cp.top());
cp.pop();
}
}Last updated