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

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


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

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

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

  • एक ही सरणी में कई प्राथमिकताओं के लिए क्यू बनाए रखें

    प्रायोरिटी क्यू को लागू करने का एक तरीका प्रत्येक प्राथमिकता के लिए एक क्यू बनाए रखना है। हम इन कई क्यू को एक ही सरणी में स्टोर कर सकते हैं जहां प्रत्येक क्यू के दो पॉइंटर्स होंगे यानी फ्रंट और रियर। क्यू में, फ्रंट पॉइंटर का उपयोग क्यू में तत्व डालने के लिए किया जाता है और जब भी तत्व डाला जाता है तो यह 1 से बढ़ जाता है और दूसरा पॉइंटर रियर है जिसका उपयोग क्यू से तत्व को हटाने या डिलीट करने के लिए किया जाता है जो जब भी तत्व क्यू से हटाया जाता है तो 1 से घट जाता है। अंत में, दोनों पॉइंटर्स की स्थितियों के माध्यम से हम क्यू में तत्वों की संख्या भी निर्धारित कर सकते हैं।

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

  • इस प्रकार के प्रतिनिधित्व में, नए तत्वों को डालने के लिए जगह बनाने के लिए पॉइंटर्स को शिफ्ट करने की आवश्यकता होती है जो इसे समय और स्थान दोनों के संदर्भ में जटिल बना देगा।
  • एक ही सरणी में प्रत्येक प्राथमिकता के लिए क्यू बनाए रखें

    इस प्रकार की विधि में हम प्रत्येक तत्व के लिए अलग सरणी बनाते हैं। प्रत्येक क्यू को एक सर्कुलर ऐरे के रूप में लागू किया जाता है और इसमें दो पॉइंटर वेरिएबल होते हैं यानी फ्रंट और रियर। दी गई प्राथमिकता संख्या वाला तत्व संबंधित क्यू में डाला जाता है इसी तरह यदि हम क्यू से किसी तत्व को हटाना चाहते हैं तो यह उच्चतम प्राथमिकता वाली क्यू का तत्व होना चाहिए। सबसे कम प्राथमिकता पूर्णांक उच्चतम प्राथमिकता (0) को इंगित करता है।

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

नोट - यदि प्रत्येक क्यू का आकार समान है तो हम कई एक-आयामी सरणी बनाने के बजाय एक ही दो-आयामी सरणी बना सकते हैं।

प्रायोरिटी क्यू में इंसर्ट ऑपरेशन के लिए एल्गोरिदम

insert(queue, data, priority)
    If(queue->Rear[priority] = MAX-1 AND queue->Front[priority] = 0) OR (queue->Rear[priority] +1 = queue->Front[priority])
        Print Overflow
    End
    IF queue->Rear[priority - 1] = MAX-1
        Set queue->Rear[priority - 1] = 0
    Else
        Set queue->Rear[priority] = queue->Rear[priority - 1] +1
    End
    Set queue->CQueue[priority - 1][queue->Rear[priority - 1]] = data
    IF queue->Front[priority - 1] = -1
        Set queue->Front[priority - 1] = 0
    End

प्रायोरिटी क्यू में डिलीट ऑपरेशन के लिए एल्गोरिदम

delete(queue)
    Set flag = 0, priority = 0
    While priority <= MAX-1
        IF NOT queue->Front[priority] = -1
            Set flag = 1
            Set value = queue->CQueue[priority][queue->Front[priority]]
            IF queue->Front[priority] = queue->Rear[priority]
                Set queue->Front[priority] = queue->Rear[priority] = -1
            Else
                IF queue->Front[priority] = MAX-1
                    Set queue->Front[priority] = 0
                Else
                    Set queue->Front[priority] = queue->Front[priority] + 1
                End
            End
        Break
    End
    Set priority = priority + 1
End
If flag = 0
    Print underflow
Else
    Return value
End
  1. - C/C++ में putwchar() फंक्शन

    इस लेख में हम C++ STL में putwchar() फंक्शन के कार्य, सिंटैक्स और उदाहरणों पर चर्चा करेंगे। putwchar() क्या है? putwchar() फंक्शन C++ STL में एक इनबिल्ट फंक्शन है, जो हेडर फाइल में परिभाषित है। putwchar() फंक्शन का उपयोग स्टैंडर्ड आउटपुट डिवाइस पर वाइड कैरेक्टर लिखने के लिए किया जाता है। यह फंक्शन

  1. - C/C++ में memcpy() फंक्शन

    इस लेख में हम C++ STL में memcpy() फंक्शन के कार्य, सिंटैक्स और उदाहरणों पर चर्चा करेंगे। memcpy() क्या है? memcpy() फंक्शन C++ STL में एक इनबिल्ट फंक्शन है, जो हेडर फाइल में परिभाषित है। memcpy() फंक्शन का उपयोग मेमोरी के ब्लॉक्स को कॉपी करने के लिए किया जाता है। इस फंक्शन का उपयोग एक मेमोरी लोकेश

  1. C/C++ में AA ट्रीज C/C++ में AA ट्रीज

    कंप्यूटर साइंस में AA ट्री को संतुलित ट्री के एक रूप के रूप में परिभाषित किया गया है जिसे क्रमबद्ध डेटा को कुशलतापूर्वक स्टोर और पुनर्प्राप्त करने के लिए लागू किया जाता है। AA ट्रीज को रेड-ब्लैक ट्री के एक रूपांतर के रूप में माना जाता है, एक प्रकार का बाइनरी सर्च ट्री जो प्रविष्टियों के कुशल जोड़ और