A stack is empty when it has no elements inside it. This means there is nothing to pop or peek.
Click to reveal answer
beginner
How can you check if a stack is full in an array-based implementation?
You check if the top index has reached the maximum size minus one. If yes, the stack is full and cannot hold more elements.
Click to reveal answer
beginner
What is the role of the 'top' variable in a stack?
The 'top' variable points to the current top element in the stack. If top is -1, the stack is empty.
Click to reveal answer
beginner
Why is it important to check if a stack is empty before popping?
Because popping from an empty stack causes an error or undefined behavior. Checking prevents this mistake.
Click to reveal answer
beginner
What happens if you try to push an element into a full stack?
The push operation fails because there is no space left to add new elements. This is called stack overflow.
Click to reveal answer
What value of 'top' indicates that the stack is empty in an array-based stack?
A0
B1
Csize - 1
D-1
✗ Incorrect
When 'top' is -1, it means no elements are in the stack, so it is empty.
How do you know a stack is full in an array of size 5?
Atop == 4
Btop == 5
Ctop == 0
Dtop == -1
✗ Incorrect
Since array indices start at 0, top == 4 means the stack has 5 elements and is full.
What should you do before popping an element from a stack?
ACheck if the stack is empty
BCheck if the stack is full
CIncrease the top index
DClear the stack
✗ Incorrect
You must check if the stack is empty to avoid errors when popping.
What is stack overflow?
ATrying to pop from an empty stack
BTrying to push into a full stack
CStack has one element
DStack is empty
✗ Incorrect
Stack overflow happens when pushing into a stack that has no space left.
If top == -1, what is true about the stack?
AStack has one element
BStack is full
CStack is empty
DStack is corrupted
✗ Incorrect
Top being -1 means no elements are in the stack, so it is empty.
Explain how to check if a stack is empty or full in an array-based stack.
Think about the position of the top index relative to the array size.
You got /3 concepts.
Why is it important to check stack status before push or pop operations?
Consider what happens if you push when full or pop when empty.
You got /3 concepts.
Practice
(1/5)
1. What does the isEmpty() function check in a stack data structure?
easy
A. If the stack has no elements
B. If the stack is full
C. If the stack has exactly one element
D. If the stack is sorted
Solution
Step 1: Understand the purpose of isEmpty()
The isEmpty() function is designed to check whether the stack contains any elements or not.
Step 2: Interpret the meaning of empty stack
An empty stack means it has zero elements, so isEmpty() returns true if no elements are present.
Final Answer:
If the stack has no elements -> Option A
Quick Check:
isEmpty() = stack empty check [OK]
Hint: Empty means zero elements in stack [OK]
Common Mistakes:
Confusing isEmpty() with isFull()
Thinking isEmpty() checks for one element
Assuming isEmpty() checks stack order
2. Which of the following is the correct syntax to check if a stack named s is full in C++ assuming MAX is the stack capacity and top is the index of the top element?
easy
A. if (top == MAX - 1) {}
B. if (top == MAX) {}
C. if (top > MAX) {}
D. if (top >= MAX + 1) {}
Solution
Step 1: Understand stack indexing
Stack top starts at -1 when empty and increments by 1 for each push. The last valid index is MAX - 1.
Step 2: Check condition for full stack
The stack is full when top equals MAX - 1, meaning all positions are filled.
Final Answer:
if (top == MAX - 1) {} -> Option A
Quick Check:
Full stack = top == MAX - 1 [OK]
Hint: Full means top equals max index (MAX-1) [OK]
Common Mistakes:
Using top == MAX instead of MAX - 1
Checking top > MAX which is invalid
Using >= MAX + 1 which is out of range
3. What will be the output of the following C++ code snippet?
const int MAX = 3;
int stack[MAX];
int top = -1;
// Push elements
if (top < MAX - 1) top++;
stack[top] = 10;
if (top < MAX - 1) top++;
stack[top] = 20;
// Check if stack is full
if (top == MAX - 1) std::cout << "Full";
else std::cout << "Not Full";
medium
A. Full
B. Compilation Error
C. Runtime Error
D. Not Full
Solution
Step 1: Trace the push operations
Initially, top = -1. First push increments top to 0 and stores 10. Second push increments top to 1 and stores 20.
Step 2: Check if stack is full
Stack is full if top == MAX - 1 which is 2. Currently, top is 1, so stack is not full.
Final Answer:
Not Full -> Option D
Quick Check:
top = 1, MAX - 1 = 2, so Not Full [OK]
Hint: Count pushes; full if top equals MAX-1 [OK]
Common Mistakes:
Assuming stack is full after 2 pushes when MAX is 3
Confusing top index with number of elements
Ignoring initial top = -1
4. Identify the error in the following C++ code that checks if a stack is empty:
B. The function should check if top == -1 for empty stack
C. The function should return false when top == 0
D. The function should check if top == MAX for empty stack
Solution
Step 1: Understand stack top initialization
In stack implementation, top is usually -1 when stack is empty, not 0.
Step 2: Analyze the condition in code
The code checks top == 0 which means stack has one element, so it incorrectly returns true for empty.
Final Answer:
The function should check if top == -1 for empty stack -> Option B
Quick Check:
Empty stack top = -1, not 0 [OK]
Hint: Empty stack top is -1, not 0 [OK]
Common Mistakes:
Checking top == 0 instead of -1
Confusing empty with one element
Returning wrong boolean for empty condition
5. You have a stack with capacity 5 and top initialized to -1. After pushing 5 elements, you pop 2 elements. Which condition correctly checks if the stack is full now?
hard
A. if (top == 3) {}
B. if (top == 5) {}
C. if (top == 4) {}
D. if (top == -1) {}
Solution
Step 1: Calculate top after operations
Initially, top = -1. After pushing 5 elements, top = 4 (0-based index). After popping 2 elements, top decreases by 2 to 2.
Step 2: Determine full stack condition now
Stack is full only when top = 4. After popping, top is 2, so stack is not full. To check if full now, top must be 4.
Step 3: Understand the question's intent
The question asks which condition correctly checks if stack is full now. Since top is 2, stack is not full. The correct condition to check full is top == 4.
Final Answer:
if (top == 4) {} -> Option C
Quick Check:
Full stack top = capacity - 1 = 4 [OK]
Hint: Full means top equals capacity - 1 (4 here) [OK]
Common Mistakes:
Using top == 5 which is out of range
Confusing popped elements with full condition
Checking top == -1 which means empty
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.