কম্পিউটার টিউটোরিয়াল

C++-এ অপরিবর্তনীয় লিঙ্কড লিস্ট উল্টে প্রিন্ট করা

মান लीजिए हमारे पास एक अचल लिंक्ड लिस्ट है, हमें निम्नलिखित इंटरफेस की मदद से प्रत्येक नोड के सभी मानों को रिवर्स ऑर्डर में प्रिंट करना है -

  • ImmutableListNode - यह एक अचल लिंक्ड लिस्ट का इंटरफेस है, हमें लिस्ट का हेड दिया जाता है।

लिंक्ड लिस्ट को एक्सेस करने के लिए हमें निम्नलिखित फ़ंक्शन्स का उपयोग करना होगा -

  • ImmutableListNode.printValue() - यह वर्तमान नोड का मान प्रिंट करेगा।
  • ImmutableListNode.getNext() - यह अगला नोड वापस करेगा।

तो अगर लिस्ट है: [0, -4, -1, 3, -5], तो आउटपुट होगा [-5, 3, -1, -4, 0]

समाधान के चरण

  • ImmutableListNode टाइप के नोड्स के लिए एक स्टैक st डिफाइन करें
  • जब तक हेड नल नहीं है:
    • हेड को st में डालें
    • हेड := हेड का अगला नोड
  • जब तक st खाली नहीं है:
    • स्टैक के टॉप नोड का मान प्रिंट करें
    • स्टैक से नोड डिलीट करें

उदाहरण (C++)

बेहतर समझ के लिए निम्नलिखित इम्प्लीमेंटेशन देखें -

class Solution {
public:
    void printLinkedListInReverse(ImmutableListNode* head) {
        stack <ImmutableListNode*> st;
        while(head){
            st.push(head);
            head = head->getNext();
        }
        while(!st.empty()){
            st.top()->printValue();
            st.pop();
        }
    }
};

इनपुट

[0,-4,-1,3,-5]

आउटपुट

[-5,3,-1,-4,0]
  1. সি প্রোগ্রামিং-এ লিংকড লিস্ট রিভার্স না করে রিভার্স অর্ডারে প্রিন্ট করা

  2. C প্রোগ্রামে এক্সট্রা স্পেস ছাড়া লিংকড লিস্ট উল্টে প্রিন্ট করা

  3. সি++-এ লিংকড লিস্টের অল্টারনেট নোডগুলোর যোগফল

  4. C++-এ লিংকড লিস্টের אל্টারনেট নোড প্রিন্ট করুন (রিকার্সন ছাড়া)