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

C++ प्रोग्राम: लिंक्ड लिस्ट का उपयोग करके स्टैक कार्यान्वयन


स्टैक डेटा संरचना

स्टैक LIFO (Last In First Out) सिद्धांत का पालन करता है - अंत में डाला गया तत्व पहले निकाला जाता है। मुख्य ऑपरेशन: Push, Pop, Peek।

लिंक्ड लिस्ट आधारित स्टैक कार्यान्वयन

#include <iostream>
using namespace std;

struct Node {
    int data;
    struct Node* next;
};

struct Node* top = NULL;

void push(int val) {
    struct Node* newnode = (struct Node*)malloc(sizeof(struct Node));
    newnode->data = val;
    newnode->next = top;
    top = newnode;
}

void pop() {
    if (top == NULL)
        cout << "Stack Underflow" << endl;
    else {
        cout << "The popped element is " << top->data << endl;
        top = top->next;
    }
}

void display() {
    struct Node* ptr;
    if (top == NULL)
        cout << "Stack is empty";
    else {
        ptr = top;
        cout << "Stack elements: ";
        while (ptr != NULL) {
            cout << ptr->data << " ";
            ptr = ptr->next;
        }
    }
    cout << endl;
}

int main() {
    int ch, val;
    cout << "1) Push in stack" << endl;
    cout << "2) Pop from stack" << endl;
    cout << "3) Display stack" << endl;
    cout << "4) Exit" << endl;
    
    do {
        cout << "Enter choice: " << endl;
        cin >> ch;
        switch(ch) {
            case 1:
                cout << "Enter value to be pushed:" << endl;
                cin >> val;
                push(val);
                break;
            case 2: pop(); break;
            case 3: display(); break;
            case 4: cout << "Exit" << endl; break;
            default: cout << "Invalid Choice" << endl;
        }
    } while(ch != 4);
    return 0;
}

आउटपुट

1) Push in stack
2) Pop from stack
3) Display stack
4) Exit
Enter choice: 1
Enter value to be pushed: 2
Enter choice: 1
Enter value to be pushed: 6
Enter choice: 1
Enter value to be pushed: 8
Enter choice: 1
Enter value to be pushed: 7
Enter choice: 2
The popped element is 7
Enter choice: 3
Stack elements are: 8 6 2
Enter choice: 5
Invalid Choice
Enter choice: 4
Exit

कोड व्याख्या

Node संरचना

डेटा और अगले नोड का पॉइंटर रखता है।

push() फ़ंक्शन

नया नोड बनाता है, डेटा सेट करता है, इसे top के आगे जोड़ता है, और top को अपडेट करता है।

pop() फ़ंक्शन

अंडरफ्लो जांचता है। शीर्ष तत्व प्रदर्शित करके top को अगले नोड पर ले जाता है।

display() फ़ंक्शन

top से नीचे तक सभी तत्वों को ट्रैवर्स करके प्रदर्शित करता है।

मुख्य मेनू

उपयोगकर्ता इंटरफेस के लिए स्विच-केस आधारित मेनू।

  1. C++ प्रोग्राम: एडजेसेंसी लिस्ट इम्प्लीमेंट करना C++ प्रोग्राम: एडजेसेंसी लिस्ट इम्प्लीमेंट करना

    एक ग्राफ का एडजेसेंसी लिस्ट प्रतिनिधित्व एक लिंक्ड लिस्ट प्रतिनिधित्व है। इस प्रतिनिधित्व में हमारे पास लिस्ट्स का एक ऐरे होता है। ऐरे का आकार V होता है। यहां V वर्टेक्स की संख्या है। दूसरे शब्दों में, हम कह सकते हैं कि हमारे पास V संख्या की अलग-अलग लिस्ट्स को स्टोर करने के लिए एक ऐरे है। यदि एक लि

  1. - C++ प्रोग्राम: स्टैक इम्प्लीमेंट करना

    इस प्रोग्राम में हम देखेंगे कि C++ का उपयोग करके स्टैक कैसे इम्प्लीमेंट करें। एक स्टैक एक एब्सट्रैक्ट डेटा स्ट्रक्चर है जिसमें एलिमेंट्स का संग्रह होता है। स्टैक LIFO मैकेनिज्म इम्प्लीमेंट करता है यानी जो एलिमेंट अंत में पुश किया जाता है वह पहले पॉप होता है। स्टैक में कुछ प्रमुख ऑपरेशन हैं: Push

  1. C++ प्रोग्राम: लिंक्ड लिस्ट का उपयोग करके ग्राफ प्रतिनिधित्व करना C++ प्रोग्राम: लिंक्ड लिस्ट का उपयोग करके ग्राफ प्रतिनिधित्व करना

    एक ग्राफ का इन्सिडेंस मैट्रिक्स ग्राफ को मेमोरी में स्टोर करने का एक और प्रतिनिधित्व है। यह मैट्रिक्स एक वर्ग मैट्रिक्स नहीं है। इन्सिडेंस मैट्रिक्स का ऑर्डर V x E होता है। जहां V वर्टेक्स की संख्या है और E ग्राफ में एज की संख्या है। इस मैट्रिक्स की प्रत्येक पंक्ति में हम वर्टेक्स रखते हैं, और प्रत