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

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

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

समस्या को समझने के लिए एक उदाहरण लेते हैं,

इनपुट

linked List : 5 -> 2 -> 7 -> 3 ->9 -> 1 -> 4

आउटपुट

Smallest element = 1
Largest element = 9

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

समस्या का एक सरल समाधान नोड द्वारा लिंक की गई सूची को ट्रैवर्स करके उपयोग कर रहा है। इससे पहले, हम maxElement और minElement को पहले एलिमेंट यानी हेड -> डेटा के वैल्यू में इनिशियलाइज़ करेंगे। फिर हम लिंक्डलिस्ट एलिमेंट बाय एलिमेंट को ट्रैस करेंगे। और फिर वर्तमान नोड के मान की तुलना 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. सी ++ में क्रमबद्ध और घुमाए गए लिंक्ड सूची में घूर्णन की गणना करें

    हमें एक लिंक्ड लिस्ट दी गई है। सूची को पहले क्रमबद्ध किया जाता है और फिर K संख्या के नोड्स द्वारा घुमाया जाता है। लक्ष्य K का मान ज्ञात करना है। यदि हमें इनपुट के रूप में लिंक की गई सूची नीचे दी गई है, जिसे K नोड्स की संख्या द्वारा घुमाया जाता है - तब मूल अवश्य रहा होगा - और हम देख सकते हैं K

  1. C++ में सिंगल सर्कुलर लिंक्ड लिस्ट में न्यूनतम और अधिकतम तत्व खोजें

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

  1. C++ में एक सिंगल लिंक्ड लिस्ट में ऑड और इवन नोड्स को वैकल्पिक करें

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