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

C++ में सिंगली लिंक्ड लिस्ट में सबसे छोटा और सबसे बड़ा तत्व खोजें


इस समस्या में, हमें एक सिंगली लिंक्ड लिस्ट दी गई है। हमारा कार्य सिंगल लिंक्ड लिस्ट में सबसे छोटा और सबसे बड़ा तत्व खोजना है।

आइए एक उदाहरण से इस समस्या को समझते हैं,

इनपुट

लिंक्ड लिस्ट: 5 -> 2 -> 7 -> 3 -> 9 -> 1 -> 4

आउटपुट

सबसे छोटा तत्व = 1 सबसे बड़ा तत्व = 9

समाधान दृष्टिकोण

इस समस्या का एक सरल समाधान लिंक्ड लिस्ट को नोड दर नोड ट्रैवर्स करना है। इससे पहले, हम maxElement और minElement को पहले तत्व के मान यानी head -> data से इनिशियलाइज़ करेंगे। फिर हम लिंक्ड लिस्ट को तत्व दर तत्व ट्रैवर्स करेंगे। और फिर वर्तमान नोड के मान की तुलना maxElement से करेंगे और बड़े मान को maxElement वेरिएबल में स्टोर करेंगे। minElement में छोटे मानों को स्टोर करने के लिए भी यही करें। जब ट्रैवर्सल पूरा हो जाए तो दोनों मान प्रिंट करें।

हमारे समाधान के कार्य को दर्शाने वाला प्रोग्राम,

उदाहरण

#include <bits/stdc++.h> using namespace std; struct Node {    int data;    struct Node* next; }; void printLargestSmallestLinkedList(struct Node* head) {    int maxElement = INT_MIN;    int minElement = INT_MAX;    while (head != NULL) {       if (minElement > head->data)          minElement = head->data;       if (maxElement < head->data)          maxElement = head->data;       head = head->next;    }    cout<<"Smallest element in the linked list is : "<<minElement<<endl;    cout<<"Largest element in the linked list is : "<<maxElement<<endl; } void push(struct Node** head, int data) {    struct Node* newNode = (struct Node*)malloc(sizeof(struct Node));    newNode->data = data;    newNode->next = (*head);    (*head) = newNode; } int main() {    struct Node* head = NULL;    push(&head, 5);    push(&head, 2);    push(&head, 7);    push(&head, 3);    push(&head, 9);    push(&head, 1);    push(&head, 4);    printLargestSmallestLinkedList(head);    return 0; }

आउटपुट

Smallest element in the linked list is : 1 Largest element in the linked list is : 9

  1. C++ में सॉर्टेड और रोटेटेड लिंक्ड लिस्ट में रोटेशन की गिनती C++ में सॉर्टेड और रोटेटेड लिंक्ड लिस्ट में रोटेशन की गिनती

    हमें एक लिंक्ड लिस्ट दी गई है। लिस्ट पहले सॉर्ट की गई है और फिर K नोड्स द्वारा रोटेट की गई है। लक्ष्य K का मान ज्ञात करना है। यदि हमें नीचे दी गई लिंक्ड लिस्ट इनपुट के रूप में दी गई है जो K नोड्स द्वारा रोटेटेड है: तो मूल लिस्ट रही होगी: और हम यहाँ देख सकते हैं K=2 है। इनपुट लिंक्ड लिस्ट मूल सॉर्

  1. - C++ में एकल परिपत्र लिंक्ड सूची में न्यूनतम और अधिकतम तत्व ढूंढना

    यहां हम देखेंगे कि एकल परिपत्र लिंक्ड रैखिक सूची से न्यूनतम और अधिकतम मान कैसे प्राप्त करें। मूल अवधारणा बहुत सरल है। अंतिम नोड का अगला भाग पहले नोड की ओर इशारा करेगा, पहला नोड भी स्टार्ट पॉइंटर का उपयोग करके इंगित किया जाएगा। जब हम सूची में कुछ तत्व डालते हैं, तो डालने के बाद नवीनतम डाले गए नोड का

  1. - C++ में सिंगली लिंक्ड लिस्ट में वैकल्पिक विषम और सम नोड्स

    एक सिंगल लिंक्ड लिस्ट एक रैखिक डेटा संरचना है जिसमें दो भाग होते हैं: एक डेटा और दूसरा सूची में अगले एलिमेंट का पॉइंटर। एक वैकल्पिक विषम और सम सिंगली लिंक्ड लिस्ट एक लिंक्ड लिस्ट है जिसमें एक नोड सम डेटा वाला होता है और दूसरा नोड विषम डेटा वाला होता है। इस समस्या में, हमें एक पूर्वनिर्धारित सिंगली ल