Computer >> Máy Tính >  >> Lập trình >> C ++

Kiểm tra xem danh sách được liên kết có phải là Danh sách được liên kết tròn trong C ++ hay không

Tại đây chúng ta sẽ thấy, hãy cuốc để kiểm tra một danh sách liên kết có phải là danh sách liên kết tròn hay không. Để kiểm tra xem danh sách được liên kết có phải là hình tròn hay không, chúng tôi sẽ lưu trữ nút tiêu đề vào một số biến khác, sau đó duyệt qua danh sách, nếu chúng tôi nhận được null ở phần tiếp theo của bất kỳ nút nào, thì đó không phải là hình tròn, nếu không chúng tôi sẽ kiểm tra nút tiếp theo có giống với nút được lưu trữ hay không, nếu vậy thì đó là nút tròn.

Ví dụ

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

Đầu ra

The list is circular list