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

C++ में दो स्टैक का उपयोग करके क्यू को लागू करना


स्टैक

स्टैक जिसे LIFO के रूप में लागू किया जाता है, जहां इन्सर्शन और डिलीशन एक ही छोर, टॉप से किए जाते हैं। अंतिम एलिमेंट जो दर्ज किया गया था, वह पहले डिलीट होता है।

स्टैक ऑपरेशन्स हैं −

  • push (int data) − टॉप पर इन्सर्शन
  • int pop() − टॉप से डिलीशन

क्यू

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

क्यू ऑपरेशन्स हैं −

  • EnQueue (int data) − रियर छोर पर इन्सर्शन
  • int DeQueue() − फ्रंट छोर से डिलीशन

यह दो स्टैक का उपयोग करके क्यू को लागू करने का एक C++ प्रोग्राम है।

फंक्शन्स का विवरण

  • function enQueue() क्यू में आइटम एनक्यू करने के लिए:
    • m को s1 पर पुश करें।
  • function deQueue() क्यू से आइटम डी-क्यू करने के लिए।
    • यदि दोनों स्टैक खाली हैं तो प्रिंट करें क्यू खाली है।
    • यदि s2 खाली है तो s1 से s2 में एलिमेंट्स मूव करें।
    • s2 से एलिमेंट्स पॉप करें और इसे लौटाएं।
  • function push() स्टैक में आइटम पुश करने के लिए।
  • function pop() स्टैक से आइटम पॉप आउट करने के लिए।

उदाहरण कोड

#include<stdlib.h> #include<iostream> using namespace std; struct nod//नोड डिक्लेरेशन {    int d;    struct nod *n; }; void push(struct nod** top_ref, int n_d);//फंक्शन्स प्रोटोटाइप्स। int pop(struct nod** top_ref); struct queue {    struct nod *s1;    struct nod *s2; }; void enQueue(struct queue *q, int m) {    push(&q->s1, m); } int deQueue(struct queue *q) {    int m;    if (q->s1 == NULL && q->s2 == NULL) {       cout << "Queue is empty";       exit(0);    }    if (q->s2 == NULL) {       while (q->s1 != NULL) {          m = pop(&q->s1);          push(&q->s2, m);       }    }    m = pop(&q->s2);    return m; } void push(struct nod** top_ref, int n_d) {    struct nod* new_node = (struct nod*) malloc(sizeof(struct nod));    if (new_node == NULL) {       cout << "Stack underflow \n";       exit(0);    }    //स्टैक पर आइटम डालें    new_node->d= n_d;    new_node->n= (*top_ref);    (*top_ref) = new_node; } int pop(struct nod** top_ref) {    int res;    struct nod *top;    if (*top_ref == NULL)//यदि स्टैक नल है {       cout << "Stack overflow \n";       exit(0);    } else { //स्टैक से एलिमेंट्स पॉप करें       top = *top_ref;       res = top->d;       *top_ref = top->n;       free(top);       return res;    } } int main() {    struct queue *q = (struct queue*) malloc(sizeof(struct queue));    q->s1 = NULL;    q->s2 = NULL;    cout << "Enqueuing..7";    cout << endl;    enQueue(q, 7);    cout << "Enqueuing..6";    cout << endl;    enQueue(q, 6);    cout << "Enqueuing..2";    cout << endl;    enQueue(q, 2);    cout << "Enqueuing..3";    cout << endl;    enQueue(q, 3);    cout << "Dequeuing...";    cout << deQueue(q) << " ";    cout << endl;    cout << "Dequeuing...";    cout << deQueue(q) << " ";    cout << endl;    cout << "Dequeuing...";    cout << deQueue(q) << " ";    cout << endl; }

आउटपुट

Enqueuing..7 Enqueuing..6 Enqueuing..2 Enqueuing..3 Dequeuing...7 Dequeuing...6 Dequeuing...2

  1. - C++ प्रोग्राम: ऐरे का उपयोग करके स्टैक कार्यान्वयन

    ऐरे आधारित स्टैक निश्चित आकार की सरणी और top सूचकांक का उपयोग करके स्टैक कार्यान्वयन। LIFO सिद्धांत का पालन करता है। C++ प्रोग्राम उदाहरण = MAX - 1) cout << Stack Overflow << endl; else { top++; stack[top] = val; } } void pop() { if (top = 0; i--)

  1. - C++ में बहुआयामी सरणियों का उपयोग करके दो मैट्रिक्स गुणा करने का प्रोग्राम

    मैट्रिक्स संख्याओं का एक आयताकार सरणी है जो पंक्तियों और कॉलम के रूप में व्यवस्थित होता है। मैट्रिक्स का एक उदाहरण निम्नलिखित है। एक 3*3 मैट्रिक्स में 3 पंक्तियाँ और 3 कॉलम होते हैं जैसा कि नीचे दिखाया गया है: 8 6 3 7 1 9 5 1 9 बहुआयामी सरणियों का उपयोग करके दो मैट्रिक्स गुणा करने का एक प्रोग्राम नि

  1. - C++ में बहुआयामी सरणियों का उपयोग करके दो मैट्रिक्स जोड़ने का प्रोग्राम

    मैट्रिक्स संख्याओं का एक आयताकार सरणी है जो पंक्तियों और कॉलम के रूप में व्यवस्थित होता है। मैट्रिक्स का एक उदाहरण निम्नलिखित है। एक 4*3 मैट्रिक्स में 4 पंक्तियाँ और 3 कॉलम होते हैं जैसा कि नीचे दिखाया गया है: 3 5 1 7 1 9 3 9 4 1 6 7 बहुआयामी सरणियों का उपयोग करके दो मैट्रिक्स जोड़ने का एक प्रोग्राम