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

सी ++ प्रोग्राम प्राथमिकता कतार लागू करने के लिए

कतार जिसे फीफो के रूप में लागू किया जाता है जहां एक छोर (पीछे) पर सम्मिलन किया जाता है और दूसरे छोर (सामने) से हटा दिया जाता है। दर्ज किया गया पहला तत्व पहले हटा दिया जाता है।

कतार संचालन हैं

  • एनक्यूई (इंट डेटा) :पीछे के छोर पर सम्मिलन

  • इंट डीक्यू () :सामने के छोर से हटाना

लेकिन प्राथमिकता कतार फर्स्ट-इन-फर्स्ट-आउट का पालन नहीं करती है, बल्कि तात्कालिकता के आधार पर प्रत्येक तत्व की प्राथमिकता होती है।

समान प्राथमिकता वाले आइटम फर्स्ट-इन-फर्स्ट-आउट सर्विस के आधार पर प्रोसेस किए जाते हैं।

उच्च प्राथमिकता वाले आइटम को कम प्राथमिकता वाले अन्य आइटम से पहले संसाधित किया जाता है।

कक्षा विवरण

Begin
   class Priority_Queue has following functions:
   function insert() to insert items at priority queue with their priorities:
      1) If queue is empty insert data from the left end of the queue.
      2) If queue is having some nodes then insert the new node at the end of those nodes having priority
         same with the new node and also before all the nodes having priority lesser than the
         current priority of the new node.
      function del() to delete items from queue.
   If queue is completely empty, print underflow otherwise delete the front element and update front.
End

उदाहरण

#include <iostream>
#include <cstdio>
#include <cstring>
#include <cstdlib>
using namespace std;
struct n // node declaration {
   int p;
   int info;
   struct n *l;
};
class Priority_Queue {
   private:
      //Declare a front pointer f and initialize it to NULL.
      n *f;
   public:
      Priority_Queue() //constructor {
         f = NULL;
      }
      void insert(int i, int p) {
         n *t, *q;
         t = new n;
         t->info = i;
         t->p = p;
         if (f == NULL || p < f->p) {
            t->l= f;
            f = t;
         } else {
            q = f;
            while (q->l != NULL && q->l->p <= p)
               q = q->l;
               t->l = q->l;
               q->l = t;
         }
      }
      void del() {
         n *t;
         if(f == NULL) //if queue is null
            cout<<"Queue Underflow\n";
         else {
            t = f;
            cout<<"Deleted item is: "<<t->info<<endl;
            f = f->l;
            free(t);
         }
      }
      void show() //print queue {
         n *ptr;
         ptr = f;
         if (f == NULL)
            cout<<"Queue is empty\n";
         else {
            cout<<"Queue is :\n";
            cout<<"Priority Item\n";
            while(ptr != NULL) {
               cout<<ptr->p<<" "<<ptr->info<<endl;
               ptr = ptr->l;
            }
         }
      }
};
int main() {
   int c, i, p;
   Priority_Queue pq;
   Do//perform switch opeartion {
      cout<<"1.Insert\n";
      cout<<"2.Delete\n";
      cout<<"3.Display\n";
      cout<<"4.Exit\n";
      cout<<"Enter your choice : ";
      cin>>c;
      switch(c) {
         case 1:
            cout<<"Input the item value to be added in the queue : ";
            cin>>i;
            cout<<"Enter its priority : ";
            cin>>p;
            pq.insert(i, p);
            break;
         case 2:
            pq.del();
            break;
         case 3:
            pq.show();
            break;
         case 4:
            break;
         default:
         cout<<"Wrong choice\n";
      }
   }
   while(c != 4);
   return 0;
}

आउटपुट

1.Insert
2.Delete
3.Display
4.Exit
Enter your choice : 1
Input the item value to be added in the queue : 7
Enter its priority : 2
1.Insert
2.Delete
3.Display
4.Exit
Enter your choice : 1
Input the item value to be added in the queue : 6
Enter its priority : 1
1.Insert
2.Delete
3.Display
4.Exit
Enter your choice : 1
Input the item value to be added in the queue : 3
Enter its priority : 3
1.Insert
2.Delete
3.Display
4.Exit
Enter your choice : 1
Input the item value to be added in the queue : 4
Enter its priority : 3
1.Insert
2.Delete
3.Display
4.Exit
Enter your choice : 3
Queue is :
Priority Item
1 6
2 7
3 3
3 4
1.Insert
2.Delete
3.Display
4.Exit
Enter your choice : 4

  1. सी ++ प्रोग्राम सीजर साइफर को लागू करने के लिए

    यह एक मोनो-अल्फाबेटिक सिफर है जिसमें प्लेनटेक्स्ट के प्रत्येक अक्षर को सिफरटेक्स्ट बनाने के लिए दूसरे अक्षर द्वारा प्रतिस्थापित किया जाता है। यह प्रतिस्थापन सिफर योजना का सबसे सरल रूप है। इस क्रिप्टोसिस्टम को आमतौर पर शिफ्ट सिफर के रूप में जाना जाता है। अवधारणा प्रत्येक वर्णमाला को दूसरे वर्णमाला स

  1. AVL ट्री को लागू करने के लिए C++ प्रोग्राम

    AVL ट्री एक सेल्फ-बैलेंसिंग बाइनरी सर्च ट्री है जहां सभी नोड्स के लिए बाएं और दाएं सबट्री की ऊंचाई के बीच का अंतर एक से अधिक नहीं हो सकता है। ट्री रोटेशन एक ऐसा ऑपरेशन है जो AVL ट्री पर तत्वों के क्रम में हस्तक्षेप किए बिना संरचना को बदलता है। यह पेड़ में एक नोड को ऊपर और एक नोड को नीचे ले जाता है।

  1. सी ++ प्रोग्राम ऐरे का उपयोग करके कतार को लागू करने के लिए

    एक कतार एक सार डेटा संरचना है जिसमें तत्वों का संग्रह होता है। कतार लागू करता हैफीफो तंत्र यानी पहले डाला गया तत्व भी पहले हटा दिया जाता है। दूसरे शब्दों में, हाल ही में जोड़े गए कम से कम तत्व को कतार में सबसे पहले हटा दिया जाता है। एक प्रोग्राम जो एक सरणी का उपयोग करके कतार को लागू करता है, वह इस