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

C++-এ একটি লিংকড লিস্ট সার্কুলার লিংকড লিস্ট কিনা চেক করা

এখানে আমরা দেখব কিভাবে একটি লিংকড লিস্ট সার্কুলার লিংকড লিস্ট কিনা তা চেক করা যায়। চেক করতে হলে হেডার নোডটি অন্য একটি ভেরিয়েবলে স্টোর করব, তারপর লিস্ট ট্রাভার্স করব। যদি কোনো নোডের next পার্টে NULL পাওয়া যায়, তবে সেটি সার্কুলার নয়। অন্যথায় নেক্সট নোডটি স্টোর করা নোডটির সাথে মিলে কিনা চেক করব, যদি মিলে যায় তবে সেটি সার্কুলার।

উদাহরণ কোড

#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";
    return 0;
}

আউটপুট

The list is circular list
  1. মাল্টিলেভেল লিংকড লিস্ট ফ্ল্যাটেন করা (C++)

  2. সি++-এ ডাবলি লিংকড সার্কুলার লিস্ট

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

  4. C++-এ সার্কুলার লিঙ্কড লিস্টে নোড গণনা