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

C++ प्रोग्राम: सर्कुलर सिंगली लिंक्ड लिस्ट कार्यान्वयन


सर्कुलर सिंगली लिंक्ड लिस्ट

अंतिम नोड पहले नोड (head) को इंगित करता है, जिससे एक वृत्त बनता है। केवल head संदर्भ से पूरी सूची एक्सेस की जा सकती है।

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 = 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

कोड व्याख्या

insert() फ़ंक्शन

शुरुआत में नोड डालता है। यदि सूची खाली है, तो नया नोड खुद को इंगित करता है। अन्यथा, अंतिम नोड (जो head को इंगित करता है) को ढूंढकर उसका next नए नोड पर सेट करता है। फिर head को नए नोड पर अपडेट करता है।

display() फ़ंक्शन

do-while लूप का उपयोग करता है क्योंकि कम से कम एक बार चलना आवश्यक है। जब ptr वापस head पर पहुंचता है तो रुक जाता है।

उपयोग के मामले

  • राउंड-रॉबिन शेड्यूलिंग
  • मल्टीप्लेयर गेम में टर्न प्रबंधन
  • बफर कार्यान्वयन
  1. JavaScript में सिंगली लिंक्ड लिस्ट को सर्कुलर बनाना JavaScript में सिंगली लिंक्ड लिस्ट को सर्कुलर बनाना

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

  1. C++ में मल्टीलेवल लिंक्ड सूची को समतल करना C++ में मल्टीलेवल लिंक्ड सूची को समतल करना

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

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

    एक ग्राफ का एडजेसेंसी लिस्ट प्रतिनिधित्व एक लिंक्ड लिस्ट प्रतिनिधित्व है। इस प्रतिनिधित्व में हमारे पास लिस्ट्स का एक ऐरे होता है। ऐरे का आकार V होता है। यहां V वर्टेक्स की संख्या है। दूसरे शब्दों में, हम कह सकते हैं कि हमारे पास V संख्या की अलग-अलग लिस्ट्स को स्टोर करने के लिए एक ऐरे है। यदि एक लि