কম্পিউটার

C++ এ পুনরাবৃত্ত সন্নিবেশ এবং ট্রাভার্সাল লিঙ্কযুক্ত তালিকা


আমাদের পূর্ণসংখ্যার মান দেওয়া হয়েছে যা একটি লিঙ্কযুক্ত তালিকা তৈরি করতে ব্যবহার করা হবে। কাজটি হল প্রথমে সন্নিবেশ করানো এবং তারপরে একটি পুনরাবৃত্ত পদ্ধতি ব্যবহার করে এককভাবে লিঙ্ক করা তালিকাকে অতিক্রম করা৷

শেষে নোডের পুনরাবৃত্তিমূলক যোগ

  • হেড NULL হলে → হেডে নোড যোগ করুন

  • অন্যথায় head( head → next )

    এ যোগ করুন

নোডের পুনরাবৃত্তিমূলক ট্রাভার্সাল

  • হেড যদি NULL → exit

    হয়
  • অন্যথায় প্রিন্ট ( শিরোনাম → পরবর্তী )

উদাহরণ

ইনপুট − 1 - 2 - 7 - 9 - 10

আউটপুট − লিঙ্ক করা তালিকা :1 → 2 → 7 → 9 → 10 → NULL

ইনপুট − 12 - 21 - 17 - 94 - 18

আউটপুট − লিঙ্ক করা তালিকা :12 → 21 → 17 → 94 → 18 → NULL

নিম্নলিখিত প্রোগ্রামে ব্যবহৃত পদ্ধতি

এই পদ্ধতিতে আমরা নোড যোগ করার জন্য ফাংশন ব্যবহার করব এবং এককভাবে লিঙ্ক করা তালিকাটি অতিক্রম করব এবং পরবর্তী ইনপুটের জন্য তাদের পুনরাবৃত্তভাবে কল করব।

  • পূর্ণসংখ্যার সাথে গঠন SLLNode নিন এবং পরবর্তী পয়েন্টার SLLNode* পরবর্তী।

  • ফাংশন addtoEnd(SLLNode* head, int data) ডাটা অংশের জন্য তালিকার প্রধান এবং পূর্ণসংখ্যাতে পয়েন্টার নেয় এবং লিঙ্ক করা তালিকার শেষে নোড যোগ করে।

  • যদি হেড পয়েন্টারটি NULL হয় তবে তালিকাটি খালি, এখন একটি নতুন নোড যোগ করুন এবং এটিকে হেড হিসাবে সেট করুন। NULL হিসাবে head → পরবর্তী যুক্ত করুন। এই নোডে পয়েন্টার রিটার্ন করুন

  • হেড নাল না হলে head->next =addtoEnd(head->next, data) ব্যবহার করে head → next নোড যোগ করুন।

  • ফাংশন ট্রাভার্সলিস্ট(SLLNode* head) মাথা থেকে ট্রাভার্সিং শুরু করে এবং প্রতিটি মান প্রিন্ট করে।

  • হেড NULL হলে NULL প্রিন্ট করে রিটার্ন করুন।

  • অন্যথায় traverseList(head->next)

    ব্যবহার করে ডেটা মান মুদ্রণ করুন এবং পরবর্তী ট্র্যাভার্স করুন
  • AddtoEnd() ব্যবহার করে মূল তালিকা তৈরি করুন এবং traverseList() ব্যবহার করে তালিকাটি প্রিন্ট করুন।

উদাহরণ

#include <bits/stdc++.h>
using namespace std;
struct SLLNode {
   int data;
   SLLNode* next;
};
SLLNode* addtoEnd(SLLNode* head, int data){
   if (head == NULL){
      SLLNode *nodex = new SLLNode;
      nodex->data = data;
      nodex->next = NULL;
      return nodex;
   }
   else{
      head->next = addtoEnd(head->next, data);
    }
   return head;
}
void traverseList(SLLNode* head){
   if (head == NULL){
      cout <<"NULL";
      return;
   }
   cout << head->data << " -> ";
   traverseList(head->next);
}
int main(){
   SLLNode* head1 = NULL;
   head1 = addtoEnd(head1, 1);
   head1 = addtoEnd(head1, 8);
   head1 = addtoEnd(head1, 56);
   head1 = addtoEnd(head1, 12);
   head1 = addtoEnd(head1, 34);
   cout<<"Linked List is :"<<endl;
   traverseList(head1);
   return 0;
}

আউটপুট

যদি আমরা উপরের কোডটি চালাই তবে এটি নিম্নলিখিত আউটপুট তৈরি করবে

Linked List is :
1 -> 8 -> 56 -> 12 -> 34 -> NULL

  1. C++ এ সাজানো এবং ঘোরানো লিঙ্ক তালিকায় ঘূর্ণন গণনা করুন

  2. C++ এ k স্থান দ্বারা একটি লিঙ্ক করা তালিকা ঘোরানোর প্রোগ্রাম

  3. লিংকড লিস্ট C++ এ লাফ দেয়

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