How do you implement a stack using an array?

The primary advantage of using an array for implementing a stack is that it is more time-efficient than linked list implementation of the stack, which takes extra time in allocating pointers of nodes whenever there is a change in the size of the stack. All the operations in case of an array-based implementation of a stack are performed in O (1) time.

Operations performed are :

  1. Push: This operation adds an item to the stack; it will throw an exception if the stack’s capacity is full.

  2. Pop: This removes the last inserted element from a stack that is removed in reverse order of their insertion; it will throw an underflow exception if the given stack is empty.

  3. Peek: This operation returns the topmost element of the stack.

  4. IsEmpty: Checks if a stack is empty or not. Returns true if the given stack is empty; otherwise, it returns false.

  5. IsStackFull: Checks if a stack is full or not. Returns true if the given stack is full; otherwise, it returns false.


void push(int val) {
  cout<<"Stack Overflow"<<endl;
  else {

void pop() {
  cout<<"Stack Underflow"<<endl;
  else {
     cout<<"The popped element is "<< stack[top] <<endl;

void display() {
  if(top>=0) {
     cout<<"Stack elements are:";
     for(int i=top; i>=0; i--)
     cout<<stack[i]<<" ";

  cout<<"Stack is empty";