Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

सर्कुलर सिंगल लिंक्ड लिस्ट को लागू करने के लिए C++ प्रोग्राम

सर्कुलर सिंगल लिंक्ड लिस्ट एक प्रकार की डेटा संरचना है जो नोड्स से बनी होती है जो सेल्फ रेफरेंशियल स्ट्रक्चर का उपयोग करके बनाई जाती है। इनमें से प्रत्येक नोड में दो भाग होते हैं, अर्थात् डेटा और अगली सूची नोड का संदर्भ।

संपूर्ण लिंक की गई सूची तक पहुँचने के लिए केवल पहली सूची नोड के संदर्भ की आवश्यकता होती है। इसे सिर के रूप में जाना जाता है। सूची में अंतिम नोड सूची के शीर्ष या पहले नोड को इंगित करता है। यही कारण है कि इसे सर्कुलर लिंक्ड लिस्ट के रूप में जाना जाता है।

सर्कुलर सिंगल लिंक्ड लिस्ट को लागू करने का कार्यक्रम इस प्रकार दिया गया है।

उदाहरण

#include <iostream>
using namespace std;
struct Node {
   int data;
   struct Node *next;
};
struct Node* head = NULL;
void insert(int newdata) {
   struct Node *newnode = (struct Node *)malloc(sizeof(struct Node));
   struct Node *ptr = head;
   newnode->data = newdata;
   newnode->next = head;
   if (head!= NULL) {
      while (ptr->next != head)
      ptr = ptr->next;
      ptr->next = newnode;
   } else
   newnode->next = newnode;
   head = newnode;
}
void display() {
   struct Node* ptr;
   ptr = head;
   do {
      cout<<ptr->data <<" ";
      ptr = ptr->next;
   } while(ptr != head);
}
int main() {
   insert(3);
   insert(1);
   insert(7);
   insert(2);
   insert(9);
   cout<<"The circular linked list is: ";
   display();
   return 0;
}

आउटपुट

The circular linked list is: 9 2 7 1 3

उपरोक्त कार्यक्रम में, संरचना नोड लिंक्ड सूची नोड बनाता है। इसमें डेटा और अगले लिंक्ड लिस्ट नोड के लिए एक पॉइंटर होता है। यह इस प्रकार दिया गया है।

struct Node {
   int data;
   struct Node *next;
};

फ़ंक्शन सम्मिलित करें () लिंक की गई सूची की शुरुआत में डेटा सम्मिलित करता है। यह एक नया नोड बनाता है और न्यूनोड के डेटा क्षेत्र में संख्या सम्मिलित करता है। यदि सिर न्यूल है, तो न्यूनोड स्वयं को इंगित करता है अन्यथा सर्कुलर लिंक्ड सूची में अंतिम नोड न्यूनोड को इंगित करता है। फिर सिर सूची की शुरुआत यानी न्यूनोड की ओर इशारा करता है। यह नीचे दिया गया है।

void insert(int newdata) {
   struct Node *newnode = (struct Node *)malloc(sizeof(struct Node));
   struct Node *ptr = head;
   newnode->data = newdata;
   newnode->next = head;
   if (head!= NULL) {
      while (ptr->next != head)
      ptr = ptr->next;
      ptr->next = newnode;
   } else
   newnode->next = newnode;
   head = newnode;
}

फ़ंक्शन डिस्प्ले () पूरी लिंक की गई सूची को प्रदर्शित करता है। पहला पीटीआर सिर की ओर इशारा करता है। फिर इसे लगातार अगले नोड तक भेजा जाता है जब तक कि नोड्स के सभी डेटा मान मुद्रित नहीं हो जाते। यह नीचे दिया गया है।

void display() {
   struct Node* ptr;
   ptr = head;
   do {
      cout<< ptr->data <<" ";
      ptr = ptr->next;
   } while(ptr != head);
}

फ़ंक्शन मुख्य () में, पहले विभिन्न मानों को सम्मिलित () कॉल करके सर्कुलर लिंक्ड सूची में डाला जाता है। फिर लिंक की गई सूची प्रदर्शित होती है। यह नीचे दिया गया है।

int main() {
   insert(3);
   insert(1);
   insert(7);
   insert(2);
   insert(9);
   cout<<"The circular linked list is: ";
   display();
   return 0;
}

  1. जावास्क्रिप्ट में सर्कुलर के रूप में सिंगल लिंक्ड लिस्ट

    सिंगल लिंक्ड लिस्ट में, अंतिम नोड का अगला पॉइंटर पहले नोड की ओर इशारा करता है।

  1. C++ में एक बहुस्तरीय लिंक्ड सूची को समतल करें

    इस समस्या में, हमें एक बहुस्तरीय लिंक्ड सूची दी गई है। हमारा काम एक बहुस्तरीय लिंक्ड सूची को समतल करने के लिए एक प्रोग्राम बनाना है। फ़्लैटनिंग ऑपरेशन इस तरह से किया जाता है कि पहले स्तर के नोड्स पहले लिंक की गई सूची में होंगे और फिर दूसरे स्तर के नोड होंगे। बहुस्तरीय लिंक की गई सूची एक बहु-आयामी

  1. सी++ प्रोग्राम एडजेंसी लिस्ट को लागू करने के लिए

    एक ग्राफ की आसन्न सूची प्रतिनिधित्व लिंक्ड सूची प्रतिनिधित्व है। इस निरूपण में हमारे पास सूचियों की एक सरणी है सरणी का आकार V है। यहाँ V शीर्षों की संख्या है। दूसरे शब्दों में, हम कह सकते हैं कि हमारे पास विभिन्न सूचियों के V नंबर को संग्रहीत करने के लिए एक सरणी है। यदि कोई सूची शीर्षलेख u वर्टेक्स