Bird
Raised Fist0
DSA Javascriptprogramming

Peek Top Element of Stack in DSA Javascript

Choose your learning style10 modes available
Mental Model
A stack is like a pile of plates where you only see and use the top plate. Peeking means looking at the top plate without removing it.
Analogy: Imagine a stack of books on a table. You can only see and touch the top book. Peeking is like glancing at the title of the top book without taking it off.
Top -> [ 3 ] -> [ 2 ] -> [ 1 ] -> null
          ↑
        (peek)
Dry Run Walkthrough
Input: stack: push 1, push 2, push 3; peek top element
Goal: To see the top element of the stack without removing it
Step 1: push 1 onto stack
Top -> [ 1 ] -> null
Why: We start with one element; it becomes the top
Step 2: push 2 onto stack
Top -> [ 2 ] -> [ 1 ] -> null
Why: New element goes on top, pushing previous down
Step 3: push 3 onto stack
Top -> [ 3 ] -> [ 2 ] -> [ 1 ] -> null
Why: Again, new element is on top
Step 4: peek top element
Top -> [ 3 ] -> [ 2 ] -> [ 1 ] -> null
          ↑
        (peek)
Why: We look at the top element without removing it
Result:
Top -> [ 3 ] -> [ 2 ] -> [ 1 ] -> null
Peeked element: 3
Annotated Code
DSA Javascript
class Stack {
  constructor() {
    this.items = [];
  }

  push(element) {
    this.items.push(element); // add element on top
  }

  peek() {
    if (this.items.length === 0) {
      return null; // empty stack check
    }
    return this.items[this.items.length - 1]; // return top element
  }

  print() {
    let result = '';
    for (let i = this.items.length - 1; i >= 0; i--) {
      result += `[ ${this.items[i]} ] -> `;
    }
    result += 'null';
    return result;
  }
}

// Driver code
const stack = new Stack();
stack.push(1);
stack.push(2);
stack.push(3);
console.log('Stack: ' + stack.print());
console.log('Peeked element: ' + stack.peek());
this.items.push(element); // add element on top
push new element to the top of stack
if (this.items.length === 0) { return null; // empty stack check }
check if stack is empty before peeking
return this.items[this.items.length - 1]; // return top element
return the top element without removing it
OutputSuccess
Stack: [ 3 ] -> [ 2 ] -> [ 1 ] -> null Peeked element: 3
Complexity Analysis
Time: O(1) because peek just returns the last element without looping
Space: O(n) because stack stores n elements in an array
vs Alternative: Compared to popping which removes the element, peek is faster since it does not modify the stack
Edge Cases
empty stack
peek returns null indicating no elements
DSA Javascript
if (this.items.length === 0) {
      return null; // empty stack check
    }
When to Use This Pattern
When you need to see the last added item without removing it, use the peek operation on a stack.
Common Mistakes
Mistake: Removing the top element instead of just viewing it during peek
Fix: Return the last element without calling pop or modifying the stack
Summary
Peek shows the top element of the stack without removing it.
Use peek when you want to check the last added item but keep the stack unchanged.
Remember peek just looks at the top, it does not change the stack.

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 and returns it
C. Adds a new element to the top
D. Checks if the stack is empty

Solution

  1. Step 1: Understand stack operations

    A stack stores elements with last-in, first-out order. Peek shows the top element without removing it.
  2. Step 2: Differentiate peek from pop

    Pop removes and returns the top element, peek only returns it without removal.
  3. Final Answer:

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

    Peek = top element without removal [OK]
Hint: Peek shows top without removing it [OK]
Common Mistakes:
  • Confusing peek with pop operation
  • 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 implemented as an array named stack in JavaScript?
easy
A. stack.peek()
B. stack.pop()
C. stack[stack.length - 1]
D. stack.top()

Solution

  1. Step 1: Understand JavaScript array indexing

    JavaScript arrays use zero-based indexing. The last element is at index length - 1.
  2. Step 2: Identify correct peek syntax

    To peek, access the last element without removing it: stack[stack.length - 1]. stack.pop() removes the element, stack.peek() and stack.top() are not default methods.
  3. Final Answer:

    stack[stack.length - 1] -> Option C
  4. Quick Check:

    Peek = stack[stack.length - 1] [OK]
Hint: Use stack[stack.length - 1] to peek top [OK]
Common Mistakes:
  • Using stack.pop() which removes element
  • Using non-existent methods like peek() or top()
  • Accessing stack[stack.length] which is undefined
3. What will be the output of the following code?
const stack = [10, 20, 30];
const top = stack[stack.length - 1];
console.log(top);
medium
A. 10
B. 30
C. 20
D. undefined

Solution

  1. Step 1: Identify the stack elements and length

    The stack array is [10, 20, 30]. Its length is 3.
  2. Step 2: Calculate the top element index and value

    stack.length - 1 = 3 - 1 = 2. stack[2] is 30.
  3. Final Answer:

    30 -> Option B
  4. Quick Check:

    Top element = 30 [OK]
Hint: Top element is last array item: stack[length-1] [OK]
Common Mistakes:
  • Using stack[stack.length] which is undefined
  • Confusing first element with top element
  • Printing stack.pop() instead of peek
4. Find the error in this code snippet that tries to peek the top element of a stack:
const stack = [5, 15, 25];
function peek() {
  return stack[stack.length];
}
console.log(peek());
medium
A. stack.length should be stack.length - 1
B. stack is not defined
C. peek function should remove the element
D. console.log is missing parentheses

Solution

  1. Step 1: Analyze the peek function index

    stack.length returns the number of elements, but array indices go from 0 to length - 1.
  2. Step 2: Correct the index to access top element

    Use stack.length - 1 to get the last element. Using stack.length returns undefined.
  3. Final Answer:

    stack.length should be stack.length - 1 -> Option A
  4. Quick Check:

    Index = length - 1 for top element [OK]
Hint: Use length - 1 to access last element [OK]
Common Mistakes:
  • Using stack.length as index causing undefined
  • Thinking peek removes element
  • Missing parentheses in console.log (not in this code)
5. Given a stack implemented as an array, how can you safely peek the top element without causing an error if the stack is empty?
function safePeek(stack) {
  // Your code here
}
hard
A. return stack[stack.length];
B. return stack[0];
C. return stack.pop();
D. return stack.length > 0 ? stack[stack.length - 1] : null;

Solution

  1. Step 1: Check if stack is empty

    Before accessing the top element, verify stack length is greater than zero to avoid undefined access.
  2. Step 2: Return top element or null safely

    If stack is not empty, return stack[stack.length - 1], else return null to indicate empty stack.
  3. Final Answer:

    return stack.length > 0 ? stack[stack.length - 1] : null; -> Option D
  4. Quick Check:

    Safe peek uses length check and conditional [OK]
Hint: Check length > 0 before peek to avoid errors [OK]
Common Mistakes:
  • Accessing stack[stack.length] causing undefined
  • Using pop which removes element
  • Returning stack[0] which is bottom, not top
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