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

C++ में डीक्यू और प्राथमिकता क्यू


जैसा कि हम जानते हैं कि क्यू डेटा संरचना फर्स्ट इन फर्स्ट आउट डेटा संरचना है। क्यू के कुछ रूपांतर भी हैं। ये हैं डीक्यू और प्राथमिकता क्यू।

डीक्यू मूल रूप से डबल एंडेड क्यू है। इसलिए फ्रंट और रियर पॉइंटर्स के दो जोड़े हैं। फ्रंट और रियर पॉइंटर्स का एक जोड़ा बाईं ओर से क्यू का वर्णन करने के लिए उपयोग किया जाता है, और दूसरा दाईं ओर से इसका वर्णन करने के लिए उपयोग किया जाता है। हम इस संरचना में दोनों तरफ से तत्व डाल या हटा सकते हैं। यहां हम डीक्यू STL का उपयोग करके कुछ C++ कोड देखेंगे ताकि इसकी कार्यक्षमता को समझा जा सके।

उदाहरण (डीक्यू)

#include <iostream>
#include <deque>
using namespace std;

void dequeElements(deque<int> que) {
    deque<int>::iterator it;
    for (it = que.begin(); it != que.end(); ++it)
        cout << *it << " ";
    cout << endl;
}

int main() {
    deque<int> que;
    que.push_back(10);
    que.push_front(20);
    que.push_back(30);
    que.push_front(15);
    cout << "वर्तमान में क्यू धारण कर रहा है: ";
    dequeElements(que);
    cout << "डीक्यू का आकार: " << que.size() << endl;
    cout << "स्थिति 2 पर तत्व: " << que.at(2) << endl;
    cout << "सामने की स्थिति पर तत्व: " << que.front() << endl;
    cout << "पीछे की स्थिति पर तत्व: " << que.back() << endl;
    cout << "सामने की तरफ से हटाएं: ";
    que.pop_front();
    dequeElements(que);
    cout << "पीछे की तरफ से हटाएं: ";
    que.pop_back();
    dequeElements(que);
}

आउटपुट

वर्तमान में क्यू धारण कर रहा है: 15 20 10 30
डीक्यू का आकार: 4
स्थिति 2 पर तत्व: 10
सामने की स्थिति पर तत्व: 15
पीछे की स्थिति पर तत्व: 30
सामने की तरफ से हटाएं: 20 10 30
पीछे की तरफ से हटाएं: 20 10

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

आइए प्राथमिकता क्यू STL के लिए एक C++ कोड देखें। यहां प्राथमिकता मान के आधार पर निर्दिष्ट की जाती है। इसलिए उच्च मान को उच्चतम प्राथमिकता वाले तत्व के रूप में माना जाएगा।

उदाहरण (प्राथमिकता क्यू)

#include <iostream>
#include <queue>
using namespace std;

void dequeElements(priority_queue<int> que) {
    priority_queue<int> q = que;
    while (!q.empty()) {
        cout << q.top() << " ";
        q.pop();
    }
    cout << endl;
}

int main() {
    priority_queue<int> que;
    que.push(10);
    que.push(20);
    que.push(30);
    que.push(5);
    que.push(1);
    cout << "वर्तमान में क्यू धारण कर रहा है: ";
    dequeElements(que);
    cout << "क्यू का आकार: " << que.size() << endl;
    cout << "शीर्ष स्थान पर तत्व: " << que.top() << endl;
    cout << "क्यू से हटाएं: ";
    que.pop();
    dequeElements(que);
    cout << "क्यू से हटाएं: ";
    que.pop();
    dequeElements(que);
}

आउटपुट

वर्तमान में क्यू धारण कर रहा है: 30 20 10 5 1
क्यू का आकार: 5
शीर्ष स्थान पर तत्व: 30
क्यू से हटाएं: 20 10 5 1
क्यू से हटाएं: 10 5 1

  1. C/C++ में प्रायोरिटी क्यू (Priority Queue) परिचय C/C++ में प्रायोरिटी क्यू (Priority Queue) परिचय

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

  1. C++ STL में प्राथमिकता कतार (Priority Queue) C++ STL में प्राथमिकता कतार (Priority Queue)

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

  1. C++ में डबल लिंक्ड लिस्ट का उपयोग करके प्राथमिकता कतार C++ में डबल लिंक्ड लिस्ट का उपयोग करके प्राथमिकता कतार

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