यहां हम देखेंगे, लिंक्ड लिस्ट की जांच करने के लिए कुदाल सर्कुलर लिंक्ड लिस्ट है या नहीं। यह जांचने के लिए कि लिंक की गई सूची गोलाकार है या नहीं, हम हेडर नोड को किसी अन्य चर में संग्रहीत करेंगे, फिर सूची को पार करेंगे, यदि हमें किसी नोड के अगले भाग में शून्य मिलता है, तो वह गोलाकार नहीं है, अन्यथा हम जांच करेंगे अगला नोड संग्रहीत नोड के समान है या नहीं, यदि ऐसा है तो वह गोलाकार है।
उदाहरण
#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