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

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


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

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

सॉर्टेड सिंगली लिंक्ड लिस्ट को लागू करने के लिए एक C++ प्रोग्राम विकसित करना।

एल्गोरिदम

शुरुआत
    फ़ंक्शन createnode() लिस्ट में नोड डालने के लिए:
        यह जांचता है कि लिस्ट खाली है या नहीं।
        यदि लिस्ट खाली है तो नोड को पहले एलिमेंट के रूप में रखें और हेड अपडेट करें।
        नेक्स्ट पॉइंटर को NULL से इनिशियलाइज़ करें।
        यदि लिस्ट खाली नहीं है,
            यह एक न्यू नोड बनाता है और न्यू नोड के डेटा फील्ड में नंबर डालता है।
            अब न्यू नोड को इस तरह से डाला जाएगा कि लिंक्ड लिस्ट सॉर्टेड रहे।
            यदि यह अंत में डाला जाता है, तो न्यू नोड NULL को इंगित करता है।
            यदि न्यू नोड शुरुआत में डाला जाता है, तो लिंक्ड लिस्ट वहीं से शुरू होती है।
    समाप्ति
शुरुआत
    फ़ंक्शन display() n नोड्स वाली लिस्ट कंटेंट प्रिंट करने के लिए:
        c = 0 इनिशियलाइज़ करें।
        पॉइंटर वेरिएबल को स्टार्ट एड्रेस से इनिशियलाइज़ करें।
        while (c <= n)
            नोड इन्फो प्रिंट करें
            पॉइंटर वेरिएबल अपडेट करें
            c बढ़ाएं।
    समाप्ति

उदाहरण कोड

#include<iostream> using namespace std; struct nod {    int d;    nod *n; } *p = NULL, *head = NULL, *q = NULL, *np = NULL; int c = 0; void createnode(int n) {    np = new nod;    np->d = n;    np->n = NULL;    if (c == 0) {       head = np;       p = head;       p->n = head;       c++;    } else if (c == 1) {       p = head;       q = p;       if (np->d < p->d) {          np->n = p;          head = np;          p->n = np;       } else if (np->d > p->d) {          p->n = np;          np->n = head;       }       c++;    } else {       p = head;       q = p;       if (np->d < p->d) {          np->n = p;          head = np;          do {             p = p->n;          }          while (p->n != q);             p->n = head;       } else if (np->d > p->d) {          while (p->n != head && q->d < np->d) {             q = p;             p = p->n;             if (p->n == head) {                p->n = np;                np->n = head;             } else if (np->d< p->d) {                q->n = np;                np->n = p;                break;             }          }       }    } } void display(int i) {    nod *t = head;    int c = 0;    while (c <= i ) {       cout<<t->d<<"\t";       t = t->n;       c++;    } } int main() {    int i = 0, n, a;    cout<<"enter the no of nodes\n";    cin>>n;    while (i < n) {       cout<<"\nenter value of node\n";       cin>>a;       createnode(a);       i++;    }    cout<<"sorted singly link list"<<endl;    display(n); }

आउटपुट

enter the no of nodes 5 enter value of node 6 enter value of node 4 enter value of node 7 enter value of node 3 enter value of node 2 sorted singly link list 2 3 4 6 7 2

  1. C++ में बाइनरी सर्च ट्री को सिंगली लिंक्ड लिस्ट में बदलना C++ में बाइनरी सर्च ट्री को सिंगली लिंक्ड लिस्ट में बदलना

    मान लीजिए हमारे पास एक बाइनरी ट्री है; हमें इसे इन-प्लेस (in-place) एक सिंगली लिंक्ड लिस्ट में बदलना है। उदाहरण के लिए, दिए गए ट्री के लिए आउटपुट एक सॉर्टेड लिंक्ड लिस्ट होगी। समाधान दृष्टिकोण (रिवर्स इनऑर्डर ट्रैवर्सल) prev := NULL सेट करें। एक रिकर्सिव फ़ंक्शन solve() परिभाषित करें जो रूट लेता

  1. C++ में डौबली लिंक्ड लिस्ट का आकार ढूंढना C++ में डौबली लिंक्ड लिस्ट का आकार ढूंढना

    इस समस्या में, हमें एक डौबली लिंक्ड लिस्ट दी गई है। हमारा कार्य C++ में डौबली लिंक्ड लिस्ट का आकार ढूंढने के लिए एक प्रोग्राम बनाना है। डौबली लिंक्ड लिस्ट एक विशेष प्रकार की लिंक्ड लिस्ट है जिसमें नेविगेशन दोनों तरीकों से संभव है, आगे और पीछे आसानी से सिंगल लिंक्ड लिस्ट की तुलना में। डौबली लिंक्ड ल

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

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