কম্পিউটার

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


ধরুন আমাদের একটি অপরিবর্তনীয় লিঙ্কযুক্ত তালিকা আছে, আমাদের নিম্নলিখিত ইন্টারফেসের সাহায্যে বিপরীতভাবে প্রতিটি নোডের সমস্ত মান মুদ্রণ করতে হবে -

  • অপরিবর্তনীয় লিস্টনোড - এটি একটি অপরিবর্তনীয় লিঙ্কযুক্ত তালিকার একটি ইন্টারফেস, আমাদেরকে তালিকার প্রধান দেওয়া হয়েছে৷

লিঙ্ক করা তালিকা -

অ্যাক্সেস করতে আমাদের নিম্নলিখিত ফাংশনগুলি ব্যবহার করতে হবে
  • ImmutableListNode.printValue() − এটি বর্তমান নোডের মান প্রিন্ট করবে।

  • ImmutableListNode.getNext() −এটি পরবর্তী নোড ফিরিয়ে দেবে।

তাই যদি তালিকাটি এরকম হয়:[0, -4, -1, 3, -5], তাহলে আউটপুট হবে [-5, 3, -1, -4, 0]

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • ImmutableListNode টাইপ নোডের জন্য একটি স্ট্যাক 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. সি প্রোগ্রামে অতিরিক্ত স্থান এবং পরিবর্তন ছাড়াই লিঙ্কযুক্ত তালিকার বিপরীত মুদ্রণ করুন।

  3. C++ এ লিঙ্ক করা তালিকার বিকল্প নোডের যোগফল

  4. C++ এ পুনরাবৃত্তি ব্যবহার করে লিঙ্ক করা তালিকার বিকল্প নোড প্রিন্ট করুন