Bird
Raised Fist0
DSA C++programming~20 mins

Peek Top Element of Stack in DSA C++ - Practice Problems & Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Stack Peek Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
What is the output of peeking the top element after these stack operations?

Consider a stack where you push 10, then 20, then 30. You then peek the top element without popping it. What is the output?

DSA C++
std::stack<int> s;
s.push(10);
s.push(20);
s.push(30);
int topElement = s.top();
std::cout << topElement << std::endl;
A10
B30
C20
DStack is empty
Attempts:
2 left
💡 Hint

Remember, the top element is the last one pushed onto the stack.

❓ Predict Output
intermediate
2:00remaining
What happens when you peek the top element of an empty stack?

Given an empty stack, what will happen if you call the top() method?

DSA C++
std::stack<int> s;
int topElement = s.top();
std::cout << topElement << std::endl;
AUndefined behavior or runtime error
BThrows std::out_of_range exception
C0
DPrints 'Stack is empty'
Attempts:
2 left
💡 Hint

Think about what happens if you try to access an element that does not exist.

🔧 Debug
advanced
2:00remaining
Identify the error in peeking the top element of a stack

What is wrong with this code snippet that tries to peek the top element?

DSA C++
std::stack<int> s;
s.push(5);
int topElement = s.pop();
std::cout << topElement << std::endl;
ANo error, code works fine
Bpop() removes the element but returns the top element correctly
Ctop() should be called before pop() to get the top element
Dpop() returns void, so assigning it to topElement causes a compile error
Attempts:
2 left
💡 Hint

Check the return type of pop() in the stack API.

❓ Predict Output
advanced
2:00remaining
What is the output after peeking and popping elements from the stack?

Given the following operations on a stack, what is printed?

DSA C++
std::stack<int> s;
s.push(1);
s.push(2);
s.push(3);
std::cout << s.top() << std::endl;
s.pop();
std::cout << s.top() << std::endl;
A
3
2
B
2
1
C
3
3
D
1
2
Attempts:
2 left
💡 Hint

Remember that pop() removes the top element, so the next top() shows the new top.

🧠 Conceptual
expert
2:00remaining
Which statement about peeking the top element of a stack is TRUE?

Choose the correct statement about the top() operation on a stack.

A<code>top()</code> removes and returns the top element of the stack.
B<code>top()</code> returns the top element without removing it and throws an exception if the stack is empty.
C<code>top()</code> returns the top element without removing it but causes undefined behavior if the stack is empty.
D<code>top()</code> returns the bottom element of the stack.
Attempts:
2 left
💡 Hint

Think about what happens if you call top() on an empty stack in C++ STL.

Practice

(1/5)
1. What does the peek() operation do in a stack?
easy
A. Returns the top element without removing it
B. Removes the top element from the stack
C. Adds a new element to the top of the stack
D. Checks if the stack is empty

Solution

  1. Step 1: Understand stack operations

    A stack is a collection where elements are added or removed from the top only.
  2. Step 2: Define peek operation

    The peek operation returns the top element without removing it, unlike pop which removes it.
  3. Final Answer:

    Returns the top element without removing it -> Option A
  4. Quick Check:

    peek() = top element [OK]
Hint: Peek shows top without removal [OK]
Common Mistakes:
  • Confusing peek with pop
  • Thinking peek adds elements
  • Assuming peek checks emptiness
2. Which of the following is the correct syntax to peek the top element of a stack named stk in C++ STL?
easy
A. stk.pop();
B. stk.peek();
C. stk.top();
D. stk.getTop();

Solution

  1. Step 1: Recall C++ STL stack methods

    The standard method to access the top element is top().
  2. Step 2: Identify correct syntax

    stk.top(); returns the top element without removing it.
  3. Final Answer:

    stk.top(); -> Option C
  4. Quick Check:

    stk.top() = peek top element [OK]
Hint: Use .top() to peek in C++ STL stack [OK]
Common Mistakes:
  • Using .peek() which is not in C++ STL
  • Using .pop() which removes element
  • Using non-existent .getTop() method
3. What will be the output of the following C++ code?
std::stack<int> stk;
stk.push(10);
stk.push(20);
stk.push(30);
std::cout << stk.top() << std::endl;
medium
A. 30
B. 10
C. 20
D. Compilation error

Solution

  1. Step 1: Trace push operations

    Elements pushed in order: 10, then 20, then 30. Stack top is last pushed element 30.
  2. Step 2: Check top() output

    stk.top() returns 30 without removing it.
  3. Final Answer:

    30 -> Option A
  4. Quick Check:

    Last pushed = top = 30 [OK]
Hint: Top is last pushed element [OK]
Common Mistakes:
  • Confusing top with bottom element
  • Assuming top removes element
  • Thinking output is 20 or 10
4. Identify the error in the following code snippet that tries to peek the top element of a stack named stk:
int topElement = stk.peek();
medium
A. stk should be declared as a queue
B. peek() is not a valid method in C++ STL stack
C. topElement should be a pointer
D. stk.pop() should be used instead

Solution

  1. Step 1: Check method availability in C++ STL stack

    C++ STL stack does not have a method named peek().
  2. Step 2: Correct method to peek top element

    The correct method is top(), so stk.top() should be used.
  3. Final Answer:

    peek() is not a valid method in C++ STL stack -> Option B
  4. Quick Check:

    Use stk.top() not stk.peek() [OK]
Hint: Use .top(), not .peek() in C++ STL [OK]
Common Mistakes:
  • Using peek() method which doesn't exist
  • Confusing pop() with peek()
  • Thinking topElement must be pointer
5. Given a stack stk with elements [5, 10, 15] pushed in that order, which code snippet correctly prints the top element without removing it and then prints the stack size?
hard
A. std::cout << stk.pop() << std::endl; std::cout << stk.size() << std::endl;
B. std::cout << stk.top() << std::endl; stk.pop(); std::cout << stk.size() << std::endl;
C. std::cout << stk.peek() << std::endl; std::cout << stk.size() << std::endl;
D. std::cout << stk.top() << std::endl; std::cout << stk.size() << std::endl;

Solution

  1. Step 1: Understand peek without removal

    To peek, use stk.top() which returns top element without removing it.
  2. Step 2: Check stack size after peek

    Since peek does not remove, stk.size() remains 3.
  3. Final Answer:

    std::cout << stk.top() << std::endl; std::cout << stk.size() << std::endl; -> Option D
  4. Quick Check:

    top() no removal + size() correct [OK]
Hint: Use top() to peek, size() unchanged [OK]
Common Mistakes:
  • Using pop() which removes element
  • Using peek() which is invalid in C++ STL
  • Printing size after pop() expecting no change
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard