Create A Stack Using Array in C++

Typically when solving programming questions, sometimes when the brain is clustered with multiple thoughts. Even the simplest fundamentals of programming seem very difficult to apply while solving a question. So having a strong grip on the fundamentals of programming mostly automates the thought process for applying these concepts while writing up a code. Stack is one of the most basic data structures you must know. Therefore in today’s article, we’ll learn how to create a stack using Array in C++

 

So open up your IDE and let’s get started real quick. Once you understand the logic practice this program on your own to make your brain work in a problem-solving way. This is a pretty easy question so you might not get asked in an interview but practising this question will make your grip more firm in the C++ language.

 

What’s The Approach?

 

  • We will create an array of size 1000.

 

  • If there’s no element in the array, the the stack will be called Underflow. And if we add element in the stack after exceeding it’s size then it’ll be called Overflow.

 

  • The element added at the last will be removed first, if in any case we want to delete elements from the stack.

 

  • .push() method will be used to insert the elements in the stack, .pop() method will be used to remove an element from the stack.

 

Also Read: How To Run C++ in Visual Studio Code on Mac OS

 

C++ Program To Create A Stack Using Array

 

Input:

 

s.push(5)

s.push(10)

s.push(15)

s.pop()

 

Output:

 

5 pushed into stack

10 pushed into stack

15 pushed into stack

15 Popped from stack

Elements present in stack : 10 5

/* C++ program to implement basic stack
operations */
#include <bits/stdc++.h>

using namespace std;

#define MAX 1000

class Stack {
    int top;

public:
    int a[MAX]; // Maximum size of Stack

    Stack() { top = -1; }
    bool push(int x);
    int pop();
    int peek();
    bool isEmpty();
};

bool Stack::push(int x)
{
    if (top >= (MAX - 1)) {
        cout << "Stack Overflow";
        return false;
    }
    else {
        a[++top] = x;
        cout << x << " pushed into stack\n";
        return true;
    }
}

int Stack::pop()
{
    if (top < 0) {
        cout << "Stack Underflow";
        return 0;
    }
    else {
        int x = a[top--];
        return x;
    }
}
int Stack::peek()
{
    if (top < 0) {
        cout << "Stack is Empty";
        return 0;
    }
    else {
        int x = a[top];
        return x;
    }
}

bool Stack::isEmpty()
{
    return (top < 0);
}

// Driver program to test above functions
int main()
{
    class Stack s;
    s.push(5);
    s.push(10);
    s.push(15);
    cout << s.pop() << " Popped from stack\n";
    //print all elements in stack :
    cout<<"Elements present in stack : ";
    while(!s.isEmpty())
    {
        // print top element in stack
        cout<<s.peek()<<" ";
        // remove top element in stack
        s.pop();
    }

    return 0;
}

 

Ethix

I'm a coding geek interested in cyberspace who loves to write and read

Leave a Reply

Your email address will not be published. Required fields are marked *