Bird
Raised Fist0
Intro to Computingfundamentals~6 mins

Stacks (last-in, first-out) in Intro to Computing - Full Explanation

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Introduction
Imagine you have a stack of plates on a table. You can only add or remove the top plate. This problem of managing items in a strict order is solved by a stack in computing.
Explanation
Last-In, First-Out (LIFO) Principle
A stack works like a pile where the last item added is the first one to be taken out. This means you always interact with the top item only. No items can be removed from the middle or bottom until the ones above are removed first.
Stacks follow the last-in, first-out rule, meaning the newest item is accessed first.
Push Operation
Adding an item to the stack is called a push. This places the new item on the top of the stack, making it the first to be removed next time. The stack grows upward as more items are pushed.
Push adds a new item to the top of the stack.
Pop Operation
Removing an item from the stack is called a pop. This takes the top item off the stack and returns it. After popping, the next item below becomes the new top.
Pop removes the top item from the stack.
Peek Operation
Peeking means looking at the top item without removing it. This lets you see what is next to be popped without changing the stack. It helps check the current top safely.
Peek shows the top item without removing it.
Stack Overflow and Underflow
Stack overflow happens when you try to push an item but the stack is full. Underflow happens when you try to pop from an empty stack. Both are errors that need careful handling.
Overflow and underflow are errors when pushing to a full stack or popping from an empty one.
Real World Analogy

Think of a stack of books on a desk. You add new books on top and remove books only from the top. You cannot take a book from the middle without removing the ones above it first.

Last-In, First-Out (LIFO) Principle → Books stacked so the last placed book is the first one you pick up
Push Operation → Placing a new book on top of the stack
Pop Operation → Taking the top book off the stack
Peek Operation → Looking at the top book without removing it
Stack Overflow and Underflow → Trying to add a book when the stack is too high or removing a book when none are left
Diagram
Diagram
┌─────────┐
│  Top    │ ← Newest item (last pushed)
├─────────┤
│  Item 3 │
├─────────┤
│  Item 2 │
├─────────┤
│  Item 1 │
└─────────┘
(push adds here, pop removes here)
This diagram shows a stack with items added and removed only from the top.
Key Facts
StackA data structure where items are added and removed from the top only.
LIFOLast-In, First-Out means the last item added is the first removed.
PushOperation to add an item to the top of the stack.
PopOperation to remove the top item from the stack.
PeekOperation to view the top item without removing it.
Stack OverflowError when pushing to a full stack.
Stack UnderflowError when popping from an empty stack.
Common Confusions
Thinking stacks allow removing items from anywhere inside the stack.
Thinking stacks allow removing items from anywhere inside the stack. Stacks only allow removing the top item; you cannot remove items from the middle or bottom without popping the ones above.
Believing peek removes the top item.
Believing peek removes the top item. Peek only shows the top item without removing it, unlike pop which removes it.
Summary
Stacks let you add and remove items only from the top, following last-in, first-out order.
Push adds an item on top; pop removes the top item; peek views the top without removing.
Trying to pop from empty or push to full stacks causes errors called underflow and overflow.

Practice

(1/5)
1. What does the term last-in, first-out (LIFO) mean in the context of a stack?
easy
A. The last item added is the first one removed.
B. The first item added is the first one removed.
C. Items are removed in random order.
D. Items are removed based on their size.

Solution

  1. Step 1: Understand the order of operations in a stack

    A stack stores items so that the last item you put in is the first one you take out.
  2. Step 2: Match the definition to the options

    The last item added is the first one removed correctly describes this behavior as "last item added is first removed".
  3. Final Answer:

    The last item added is the first one removed. -> Option A
  4. Quick Check:

    LIFO = Last In, First Out [OK]
Hint: Remember: last added is first removed in stacks [OK]
Common Mistakes:
  • Confusing LIFO with FIFO (queue behavior)
  • Thinking items are removed in the order they were added
  • Assuming random removal order
2. Which of the following is the correct way to add an item to a stack?
easy
A. Use the pop operation.
B. Use the peek operation.
C. Use the push operation.
D. Use the enqueue operation.

Solution

  1. Step 1: Recall stack operations

    Stacks use push to add items and pop to remove items.
  2. Step 2: Identify the correct operation for adding

    Only push adds an item to the stack, so Use the push operation is correct.
  3. Final Answer:

    Use the push operation. -> Option C
  4. Quick Check:

    Push adds items to stack [OK]
Hint: Push adds, pop removes from stack [OK]
Common Mistakes:
  • Confusing pop as adding instead of removing
  • Using queue terms like enqueue
  • Thinking peek adds items
3. Consider this sequence of stack operations starting with an empty stack:
push(5)
push(3)
pop()
push(2)
pop()
pop()

What is the result of the last pop() operation?
medium
A. 5
B. 3
C. 2
D. Stack is empty

Solution

  1. Step 1: Trace each operation on the stack

    Start empty: []
    push(5) -> [5]
    push(3) -> [5, 3]
    pop() removes 3 -> [5]
    push(2) -> [5, 2]
    pop() removes 2 -> [5]
    pop() removes 5 -> []
  2. Step 2: Identify the last pop result

    The last pop removes 5, so the result is 5.
  3. Final Answer:

    5 -> Option A
  4. Quick Check:

    Last pop removes 5 [OK]
Hint: Follow push/pop step-by-step to track top item [OK]
Common Mistakes:
  • Forgetting the order of pop removes last pushed
  • Mixing up which item is on top
  • Assuming pop returns the first pushed item
4. The following code tries to pop an item from an empty stack. What is the likely problem?
stack = []
item = stack.pop()
medium
A. It will silently ignore the pop.
B. It will return None.
C. It will add an item instead of removing.
D. It will raise an error because the stack is empty.

Solution

  1. Step 1: Understand pop behavior on empty stack

    Calling pop on an empty list (stack) causes an error because there is no item to remove.
  2. Step 2: Identify the error type

    In Python, this raises an IndexError indicating the stack is empty.
  3. Final Answer:

    It will raise an error because the stack is empty. -> Option D
  4. Quick Check:

    Pop on empty stack causes error [OK]
Hint: Pop on empty stack causes error, never returns None [OK]
Common Mistakes:
  • Assuming pop returns None if empty
  • Thinking pop adds items
  • Ignoring runtime errors
5. You want to reverse the order of a list [1, 2, 3, 4] using a stack. Which sequence of operations correctly reverses the list?
hard
A. Pop all items first, then push them back in order.
B. Push all items in order, then pop all items to get reversed list.
C. Push items in reverse order, then pop all items.
D. Push and pop items randomly to reverse.

Solution

  1. Step 1: Understand stack reverses order by LIFO

    Pushing items in original order puts last item on top. Popping all items returns them in reverse order.
  2. Step 2: Match the correct sequence

    Push all items in order, then pop all items to get reversed list describes pushing all items then popping all to reverse the list correctly.
  3. Final Answer:

    Push all items in order, then pop all items to get reversed list. -> Option B
  4. Quick Check:

    Stack reverses order by push then pop [OK]
Hint: Push original order, pop all to reverse list [OK]
Common Mistakes:
  • Pushing in reverse order then popping returns original order
  • Popping before pushing causes error
  • Random push/pop does not guarantee reversal