কম্পিউটার

একটি লিঙ্ক করা তালিকা C++ এ সার্কুলার লিঙ্কড তালিকা কিনা তা পরীক্ষা করুন


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

উদাহরণ

#include <iostream>
using namespace std;
class Node{
   public:
   int data;
   Node *next;
};
Node* getNode(int data){
   Node *newNode = new Node;
   newNode->data = data;
   newNode->next = NULL;
   return newNode;
}
bool isCircularList(Node *start){
   if(start == NULL)
      return true;
   Node *node = start->next;
   while(node != NULL && node != start){
      node = node->next;
   }
   if(node == start)
      return true;
      return false;
}
int main() {
   Node *start = getNode(10);
   start->next = getNode(20);
   start->next->next = getNode(30);
   start->next->next->next = getNode(40);
   start->next->next->next->next = getNode(50);
   start->next->next->next->next->next = start;
   if (isCircularList(start))
      cout << "The list is circular list";
   else
      cout << "The list is not circular list";
}

আউটপুট

The list is circular list

  1. C++ এ বহুস্তরের লিঙ্কযুক্ত তালিকা সমতল করুন

  2. C++ এ দ্বৈতভাবে সংযুক্ত সার্কুলার তালিকা

  3. C++ এ সার্কুলার লিঙ্কড লিস্টের নোডের সমষ্টি

  4. C++ এ সার্কুলার লিঙ্ক তালিকায় নোড গণনা করুন