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

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

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

प्रारंभ में न्यूनतम को सकारात्मक अनंत के साथ सौंपा गया है, और अधिकतम को नकारात्मक अनंत के साथ सौंपा गया है। अब सूची को बाएँ से दाएँ पार करें। यदि वर्तमान तत्व न्यूनतम तत्व से कम है, तो न्यूनतम अद्यतन करें, यदि वर्तमान तत्व अधिकतम तत्व से बड़ा है, तो अधिकतम अद्यतन करें। इस प्रकार हम न्यूनतम और अधिकतम मान प्राप्त कर सकते हैं।

उदाहरण

#include<iostream>
using namespace std;
class Node{
   public:
   int data;
   Node *next;
};
Node* getNode(int key){
   Node *newNode = new Node();
   newNode->data = key;
   newNode->next = NULL;
   return newNode;
}
void insert(Node **start, int data){
   Node *current = *start;
   Node *newNode = getNode(data);
   if(*start == NULL){
      newNode->next = newNode;
      *start = newNode;
      return;
   }
   while (current->next != *start) {
      current = current->next;
   }
   newNode->next = *start;
   current->next = newNode;
}
void displayList(Node *start){
   Node* current = start;
   if (start == NULL) {
      cout << "Display List is empty";
      return;
   } else {
      do {
         cout << current->data << " ";
         current = current->next;
      }
       while (current != start);
   }
   cout << endl;
}
void getMinMax(Node **start){
   if(*start == NULL){
      return;
   }
   Node* current;
   current = *start;
   int min = INT_MAX, max = INT_MIN;
   while (current->next != *start) {
      if (current->data < min) {
         min = current->data;
      }
      if (current->data > max) {
         max = current->data;
      }
      current = current->next;
   }
   cout << "Minimum: " << min << ", Maximum: " << max;
}
int main() {
   int data[] = {99, 11, 22, 10, 44, 55, 66};
   int n = sizeof(data)/sizeof(data[0]);
   Node *start = NULL;
   for(int i = 0; i<n; i++){
      insert(&start, data[i]);
   }
   displayList(start);
   getMinMax(&start);
}

आउटपुट

99 11 22 10 44 55 66
Minimum: 10, Maximum: 99

  1. लिंक की गई सूची का अधिकतम और न्यूनतम तत्व जो C++ . में दी गई संख्या k से विभाज्य है

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

  1. C++ में एक लिंक्ड सूची में न्यूनतम आवृत्ति तत्वों की गणना करें

    कार्य को देखते हुए किसी दी गई लिंक्ड सूची में न्यूनतम आवृत्ति तत्वों की गणना करना है जिसमें डुप्लिकेट तत्व हैं। एक लिंक्ड सूची एक डेटा संरचना है जिसमें डेटा को क्रमानुसार संग्रहीत किया जाता है, एक सूची की तरह प्रत्येक तत्व अगले तत्व से जुड़ा होता है। किसी लिंक की गई सूची में किसी तत्व की आवृत्ति क

  1. C++ में सर्कुलर लिंक्ड लिस्ट में नोड्स गिनें

    हमें नोड्स के साथ एक सर्कुलर लिंक्ड लिस्ट दी गई है और कार्य एक सर्कुलर लिंक्ड लिस्ट में मौजूद नोड्स की गिनती की गणना करना है। सर्कुलर लिंक्ड लिस्ट लिंक्ड लिस्ट का एक रूपांतर है जिसमें पहला तत्व अंतिम तत्व को इंगित करता है और अंतिम तत्व पहले तत्व को इंगित करता है। सिंगल लिंक्ड लिस्ट और डबल लिंक्ड लि