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

लिंक्ड लिस्ट की लंबाई खोजने का C प्रोग्राम

लिंक्ड लिस्ट डायनामिक मेमोरी आवंटन का उपयोग करती हैं यानी वे तदनुसार बढ़ती और सिकुड़ती हैं। उन्हें नोड्स के संग्रह के रूप में परिभाषित किया जाता है। यहां, नोड्स के दो भाग होते हैं: डेटा और लिंक। डेटा, लिंक और लिंक्ड लिस्ट का प्रतिनिधित्व नीचे दिया गया है।

लिंक्ड लिस्ट के प्रकार

लिंक्ड लिस्ट के चार प्रकार होते हैं:

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

रिकर्सन मेथड का उपयोग करके लिंक्ड लिस्ट की लंबाई खोजने की लॉजिक:

int length(node *temp) {
    if(temp == NULL)
        return l;
    else {
        l = l + 1;
        length(temp->next);
    }
}

प्रोग्राम

लिंक्ड लिस्ट की लंबाई खोजने का C प्रोग्राम:

#include <stdio.h>
#include <stdlib.h>

typedef struct linklist {
    int data;
    struct linklist *next;
} node;

int l = 0;

int main() {
    node *head = NULL, *temp, *temp1;
    int len, choice, count = 0, key;
    do {
        temp = (node *)malloc(sizeof(node));
        if(temp != NULL) {
            printf("\nलिस्ट में एलिमेंट्स दर्ज करें: ");
            scanf("%d", &temp->data);
            temp->next = NULL;
            if(head == NULL) {
                head = temp;
            } else {
                temp1 = head;
                while(temp1->next != NULL) {
                    temp1 = temp1->next;
                }
                temp1->next = temp;
            }
        } else {
            printf("\nमेमोरी फुल है");
        }
        printf("\nलिस्ट में डेटा दर्ज करने के लिए 1 दबाएं: ");
        scanf("%d", &choice);
    } while(choice == 1);
    len = length(head);
    printf("लिस्ट में %d नोड्स हैं", l);
    return 0;
}

// लंबाई खोजने के लिए रिकर्सिव फंक्शन
int length(node *temp) {
    if(temp == NULL)
        return l;
    else {
        l = l + 1;
        length(temp->next);
    }
}

आउटपुट

जब उपरोक्त प्रोग्राम निष्पादित होता है, तो यह निम्नलिखित परिणाम उत्पन्न करता है:

Run 1:
लिस्ट में एलिमेंट्स दर्ज करें: 3
लिस्ट में डेटा दर्ज करने के लिए 1 दबाएं: 1
लिस्ट में एलिमेंट्स दर्ज करें: 56
लिस्ट में डेटा दर्ज करने के लिए 1 दबाएं: 1
लिस्ट में एलिमेंट्स दर्ज करें: 56
लिस्ट में डेटा दर्ज करने के लिए 1 दबाएं: 0
लिस्ट में 3 नोड्स हैं

Run 2:
लिस्ट में एलिमेंट्स दर्ज करें: 12
लिस्ट में डेटा दर्ज करने के लिए 1 दबाएं: 1
लिस्ट में एलिमेंट्स दर्ज करें: 45
लिस्ट में डेटा दर्ज करने के लिए 1 दबाएं: 0
लिस्ट में 2 नोड्स हैं
  1. C++ में लिंक्ड लिस्ट में लूप की लंबाई ढूंढें C++ में लिंक्ड लिस्ट में लूप की लंबाई ढूंढें

    इस समस्या में, हमें एक लिंक्ड लिस्ट दी गई है जिसमें लूप हो सकते हैं। हमारा कार्य लिंक्ड लिस्ट में लूप की लंबाई ढूंढना है। समस्या विवरण: हमें लूप में नोड्स की संख्या गिननी है यदि इसमें लूप है अन्यथा -1 वापस करें। समस्या को समझने के लिए एक उदाहरण लेते हैं, इनपुट: linked-list : आउटपुट: 8 समाधान दृष्ट

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

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

  1. Python प्रोग्राम से सूची में सबसे छोटी संख्या खोजना Python प्रोग्राम से सूची में सबसे छोटी संख्या खोजना

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - हमें एक सूची दी गई है, हमें सूची में उपलब्ध सबसे छोटी संख्या प्रदर्शित करने की आवश्यकता है। यहां हम या तो सूची को क्रमबद्ध करके सबसे छोटा तत्व प्राप्त कर सकते हैं या बिल्ट-इन min() फ़ंक्शन का उपयोग करके सबसे छोटा तत्