Bird
Raised Fist0
DSA C++programming~5 mins

Peek Top Element of Stack in DSA C++ - Time & Space Complexity

Choose your learning style10 modes available
Time Complexity: Peek Top Element of Stack
O(1)
Understanding Time Complexity

We want to understand how long it takes to look at the top item of a stack.

How does the time needed change when the stack grows bigger?

Scenario Under Consideration

Analyze the time complexity of the following code snippet.


int peekTop(const std::stack<int>& s) {
    if (s.empty()) {
        throw std::out_of_range("Stack is empty");
    }
    return s.top();
}
    

This code returns the top element of the stack without removing it.

Identify Repeating Operations

Identify the loops, recursion, array traversals that repeat.

  • Primary operation: Accessing the top element of the stack.
  • How many times: Exactly once per call.
How Execution Grows With Input

Looking at the top element takes the same time no matter how many items are in the stack.

Input Size (n)Approx. Operations
101
1001
10001

Pattern observation: The time stays constant even if the stack grows larger.

Final Time Complexity

Time Complexity: O(1)

This means peeking the top element takes the same short time no matter how big the stack is.

Common Mistake

[X] Wrong: "Peeking the top element takes longer if the stack has more items."

[OK] Correct: The stack keeps track of the top item directly, so accessing it does not depend on stack size.

Interview Connect

Knowing that peek is a constant time operation helps you explain stack efficiency clearly and confidently.

Self-Check

"What if the stack was implemented using a linked list without a direct pointer to the top? How would the time complexity change?"

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