C++ Stack Exercises: Check if the stack (using an array) is full
C++ Stack: Exercise-2 with Solution
Write a C++ program to implement a stack using an array with push and pop operations. Check if the stack is full.
Test Data:
MAX_SIZE of the array: 5
Insert some elements onto the stack:
Stack elements: 1 2 5 6 9
Is the stack full? 1
Sample Solution:
C++ Code:
#include <iostream>
using namespace std;
#define MAX_SIZE 5 // Maximum size of stack
class Stack {
private:
int top; // Index of top element
int arr[MAX_SIZE]; // Array to store elements
public:
Stack() {
top = -1; // Initialize top index to -1 (empty stack)
}
bool push(int x) {
if (isFull()) {
cout << "Stack overflow" << endl; // Display message if stack is full
return false; // Return false to indicate failure in pushing element
}
arr[++top] = x; // Increment top index and add element to array
return true; // Return true to indicate successful element addition
}
int pop() {
if (isEmpty()) {
cout << "Stack underflow" << endl; // Display message if stack is empty
return 0; // Return 0 to indicate failure in popping element
}
return arr[top--]; // Return top element and decrement top index
}
int peek() {
if (isEmpty()) {
cout << "Stack is empty" << endl; // Display message if stack is empty
return 0; // Return 0 to indicate failure in peeking element
}
return arr[top]; // Return top element without modifying top index
}
bool isEmpty() {
return (top < 0); // Return true if stack is empty (top index is -1)
}
bool isFull() {
return (top >= MAX_SIZE - 1); // Return true if stack is full (top index is equal to MAX_SIZE - 1)
}
void display() {
if (top < 0) {
cout << "Stack is empty" << endl; // Display message if stack is empty
return;
}
cout << "\nStack elements: ";
for (int i = top; i >= 0; i--)
cout << arr[i] << " "; // Display elements of the stack
cout << endl;
}
};
int main() {
cout << "MAX_SIZE of the array: " << MAX_SIZE;
// Initialize a stack
Stack s;
cout << "\nInsert some elements onto the stack:\n";
s.push(9);
s.push(6);
s.push(5);
s.push(2);
s.push(1);
s.display(); // Display elements in the stack
cout << "Is the stack full? " << s.isFull() << endl; // Check if the stack is full
cout << "\nRemove an element from the stack! ";
cout << s.pop(); // Pop an element from the stack
s.display(); // Display elements in the stack
cout << "Is the stack full? " << s.isFull() << endl; // Check if the stack is full
cout << endl;
return 0;
}
Sample Output:
MAX_SIZE of the array: 5 Insert some elements onto the stack: Stack elements: 1 2 5 6 9 Is the stack full? 1 Remove an element from the stack! 1 Stack elements: 2 5 6 9 Is the stack full? 0
Flowchart:
CPP Code Editor:
Contribute your code and comments through Disqus.
Previous C++ Exercise: Implement a stack using an array with push, pop operations.
Next C++ Exercise: Sort a stack using another stack.
What is the difficulty level of this exercise?
It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.
https://w3resource.com/cpp-exercises/stack/cpp-stack-exercise-2.php
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics