📖 Scenario: Imagine you have a stack of books on a shelf. You want to check if the shelf is empty or if it is full and cannot hold more books.
🎯 Goal: You will create a simple stack using a list, set a maximum size, write functions to check if the stack is empty or full, and then print the results.
📋 What You'll Learn
Create a list called stack with these exact elements: ['book1', 'book2', 'book3']
Create a variable called max_size and set it to 5
Write a function called is_empty that returns True if stack is empty, otherwise False
Write a function called is_full that returns True if the length of stack is equal to max_size, otherwise False
Print the result of is_empty() and is_full() exactly as shown
💡 Why This Matters
🌍 Real World
Stacks are used in many places like undo features in apps, browser history, and managing tasks in order.
💼 Career
Understanding stack operations is important for software development, especially in areas like memory management and algorithm design.
Progress0 / 4 steps
1
Create the initial stack
Create a list called stack with these exact elements: 'book1', 'book2', 'book3'
DSA Python
Hint
Use square brackets to create a list and include the three book names as strings.
2
Set the maximum stack size
Create a variable called max_size and set it to 5
DSA Python
Hint
Just assign the number 5 to the variable max_size.
3
Write functions to check if stack is empty or full
Write a function called is_empty that returns True if stack is empty, otherwise False. Then write a function called is_full that returns True if the length of stack is equal to max_size, otherwise False
DSA Python
Hint
Use len(stack) to check the number of items in the stack.
4
Print the results of the checks
Print the result of is_empty() and is_full() exactly as shown
DSA Python
Hint
Use print("Is stack empty?", is_empty()) and similarly for is_full().
Practice
(1/5)
1. What does the isEmpty() function check in a stack?
easy
A. If the stack has exactly one element
B. If the stack is full
C. If the stack has more than one element
D. If the stack has no elements
Solution
Step 1: Understand the purpose of isEmpty()
The isEmpty() function checks whether the stack contains any elements or not.
Step 2: Identify what empty means for a 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 D
Quick Check:
Empty stack means no elements = true [OK]
Hint: Empty stack means zero elements inside [OK]
Common Mistakes:
Confusing empty with full
Thinking it checks for one element
Assuming it checks for capacity
2. Which of the following is the correct syntax to check if a stack named stack is full in Python assuming max size is stored in max_size and current size in top?
easy
A. if top == max_size: print('Stack is full')
B. if top > max_size: print('Stack is full')
C. if top < max_size: print('Stack is full')
D. if top != max_size: print('Stack is full')
Solution
Step 1: Understand stack full condition
A stack is full when the current top index equals the maximum allowed size.
Step 2: Match condition with syntax
The correct check is top == max_size to confirm fullness.
Final Answer:
if top == max_size: print('Stack is full') -> Option A
Two elements (10, 20) are added, so length is 2 which equals max_size.
Step 2: Evaluate isFull and isEmpty
isFull() returns True because length equals max_size; isEmpty() returns False because stack is not empty.
Final Answer:
True
False -> Option C
Quick Check:
Stack full = True, empty = False [OK]
Hint: Full if length equals max size; empty if length zero [OK]
Common Mistakes:
Confusing isFull and isEmpty return values
Ignoring stack length after append
Assuming stack is empty after append
4. Find the error in the following code that checks if a stack is empty:
class Stack:
def __init__(self):
self.stack = []
def isEmpty(self):
if self.stack == 0:
return True
else:
return False
s = Stack()
print(s.isEmpty())
medium
A. Missing return statement in isEmpty
B. Comparing list to integer zero causes error
C. Stack initialization is incorrect
D. Print statement syntax is wrong
Solution
Step 1: Analyze the isEmpty condition
The code compares self.stack == 0, but self.stack is a list, not a number.
Step 2: Identify correct way to check empty list
To check if list is empty, use len(self.stack) == 0 or simply not self.stack.
Final Answer:
Comparing list to integer zero causes error -> Option B
Quick Check:
List cannot be compared to number 0 [OK]
Hint: Check list emptiness with length or not operator [OK]
Common Mistakes:
Comparing list directly to 0
Forgetting list length check
Using wrong comparison operator
5. You have a stack with max size 3. After pushing 3 elements, you pop one element and then check if the stack is full or empty. What will be the correct output of isFull() and isEmpty() methods?
class Stack:
def __init__(self, max_size):
self.stack = []
self.max_size = max_size
def push(self, val):
if len(self.stack) < self.max_size:
self.stack.append(val)
def pop(self):
if not self.isEmpty():
return self.stack.pop()
def isFull(self):
return len(self.stack) == self.max_size
def isEmpty(self):
return len(self.stack) == 0
s = Stack(3)
s.push(1)
s.push(2)
s.push(3)
s.pop()
print(s.isFull())
print(s.isEmpty())
hard
A. False\nFalse
B. True\nFalse
C. False\nTrue
D. True\nTrue
Solution
Step 1: Track stack size after operations
Initially push 3 elements, stack size = 3 (full). After pop, size reduces to 2.
Step 2: Evaluate isFull and isEmpty
Since size is 2 and max_size is 3, isFull() returns False. Stack is not empty, so isEmpty() returns False.
Final Answer:
False
False -> Option A
Quick Check:
Stack size 2 < max size 3, not empty [OK]
Hint: Pop reduces size; full only if size equals max [OK]
Common Mistakes:
Assuming stack is still full after pop
Assuming stack is empty after pop
Ignoring size changes after pop
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.