Skip to main content

Stack Data Structure in Cpp (c++)

 What is Stack?

Stack refers to an abstract data types (ADTs) that is a collection of elements, with two principal operations that are addition and removal of elements from the collection. It works on the principle of LIFO (last In first out). It is also considered as a linear data structure.


 

Example: A set of books. It easy to take an item off the top rather from the middle.



Basic operations of Stack:

  • Push: Add item to the list.
  • Pop: Removes item from the list.
 

Advantages:

Stack is faster than heap memory allocation (also known as Dynamic Memory Allocation). Stack memory is automatically reclaimed when the function exits, which can be convenient for the programmer if the data is no longer required. Therefore, it is suitable for temporary data, where memory is not needed after the execution of a function.

Implementation Of Stack in C++:


#include<iostream>

using namespace std;

class StackMemory
{
 private:
  int arr[10];
     int top;
  
 public:
         
  StackMemory()
  {
   top=0;
  }
 
  void push ()
  {
      int num;
      if (top==(10 - 1))
      {
          cout<<"Memory is Full"<<endl;
 
      }
      else
      {
          cout<<"Enter The Element To Be Pushed: "<<endl;
          cin>>num;
          arr[top]=num;
          top++;
      }

  }

  void pop ()
  {
      int num;
      if (top <0)
      {
          cout<<"Stack is Empty:"<<endl;
         
      }
      else
      {
          cout<<"POP Element: = "<<arr[0]<<endl;
          for(int x=0;x<top;x++)
          arr[x]=arr[x+1];
          
          top--;
          
      }
     
  }

  void display ()
  {
      if (top== -1)
      {
                 cout<<"Stack is empty"<<endl;
        
      }
      else
      { 
          cout<<"The status is: "<<endl;
          for (int x=0; x<top;x++)
          {
              cout<<arr[x]<<endl;
          }
      }
     }

};
 
int main()
{
    int ch;
    int op = 1;
 StackMemory one;
  
    cout<<"OPERATION:"<<endl;
    while (op!=0)
    {
        cout<<"Enter 1 To PUSH "<<endl;
        cout<<"Enter 2 To POP "<<endl;
        cout<<"Enter 3 To DISPLAY "<<endl;
        cout<<"Enter 4 To EXIT: ";
        cin>>ch;
        switch (ch)
        {
         case 1:
             one.push();
             break;
         case 2:
             one.pop();
             break;
         case 3:
             one.display();
             break;
         case 4:
             return 0;
        }
        cout<<"Do you want to continue(0 or 1 ): ";
        cin>>op;
        cout<<endl;
    }
}

Comments

Popular posts from this blog

Tic-Tac-Toe Implementation in Cpp (C++) Step by Step

Inheritance (OOP)

Inheritance: In object-oriented programming,  inheritance  means an object or class has inherited behaviors from another object  or class. A child class is inherited from parent class. A child inherits characteristics of its parents, besides  inherited characteristics, a child may have its own unique characteristic. . In inheritance, every object of a child class is also an object of parent class, but not vice-versa. Base class: It is the class from which features are to be inherited into another class. Derived class: It is the class in which the base class features are inherited. A derived class can have additional properties and methods not present in the parent class that distinguishes it and provides additional functionality. REAL WORLD EXAMPLE: Let’s consider the Windows operating system. Windows 98 had certain properties and methods that were used in Windows XP. Windows XP was derived from Windows 98, but it was sti...