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

सी ++ प्रोग्राम लिंक्ड लिस्ट का उपयोग करके स्टैक को लागू करने के लिए

स्टैक एक सार डेटा संरचना है जिसमें तत्वों का संग्रह होता है। स्टैक LIFO तंत्र को लागू करता है यानी अंत में धकेले जाने वाले तत्व को पहले पॉप आउट किया जाता है। स्टैक में कुछ सिद्धांत संचालन हैं -

  • पुश - यह स्टैक के शीर्ष पर डेटा मान जोड़ता है।

  • पॉप - यह स्टैक के शीर्ष पर डेटा मान को हटा देता है।

  • पीक - यह स्टैक का शीर्ष डेटा मान देता है।

लिंक की गई सूची का उपयोग करके स्टैक को लागू करने वाला प्रोग्राम निम्नानुसार दिया गया है।

उदाहरण

#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 are: ";
      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

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

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

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

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;
   }
}

डिस्प्ले () फ़ंक्शन स्टैक में सभी तत्वों को प्रदर्शित करता है। यह ptr का उपयोग करके किया जाता है जो शुरू में ऊपर की ओर इशारा करता है लेकिन स्टैक के अंत तक जाता है। सभी डेटा मान संबंधित ti ptr मुद्रित होते हैं। यह नीचे दिया गया है।

void display() {
   struct Node* ptr;
   if(top==NULL)
   cout<<"stack is empty";
   else {
      ptr = top;
      cout<<"Stack elements are: ";
      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. सी++ प्रोग्राम एडजेंसी लिस्ट को लागू करने के लिए

    एक ग्राफ की आसन्न सूची प्रतिनिधित्व लिंक्ड सूची प्रतिनिधित्व है। इस निरूपण में हमारे पास सूचियों की एक सरणी है सरणी का आकार V है। यहाँ V शीर्षों की संख्या है। दूसरे शब्दों में, हम कह सकते हैं कि हमारे पास विभिन्न सूचियों के V नंबर को संग्रहीत करने के लिए एक सरणी है। यदि कोई सूची शीर्षलेख u वर्टेक्स

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

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

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

    एक ग्राफ की घटना मैट्रिक्स स्मृति में संग्रहीत करने के लिए एक ग्राफ का एक और प्रतिनिधित्व है। यह मैट्रिक्स एक वर्ग मैट्रिक्स नहीं है। आपतन मैट्रिक्स का क्रम V x E है। जहाँ V शीर्षों की संख्या है और E ग्राफ़ में किनारों की संख्या है। इस मैट्रिक्स की प्रत्येक पंक्ति में हम कोने रख रहे हैं, और प्रत्ये