Bird
Raised Fist0
DSA Cprogramming~15 mins

Peek Top Element of Stack in DSA C - Build from Scratch

Choose your learning style10 modes available
Peek Top Element of Stack
📖 Scenario: You are building a simple program to manage a stack of books. You want to be able to see the top book on the stack without removing it.
🎯 Goal: Create a stack using an array, set up a variable to track the top, write code to peek at the top element, and print it.
📋 What You'll Learn
Create an integer array called stack with exactly these values: 10, 20, 30, 40, 50
Create an integer variable called top and set it to 4
Create an integer variable called peek and set it to the top element of the stack using stack[top]
Print the value of peek using printf
💡 Why This Matters
🌍 Real World
Stacks are used in many places like undo features in apps, browser history, and managing function calls.
💼 Career
Understanding stack operations like peek is important for software development, debugging, and working with low-level programming.
Progress0 / 4 steps
1
Create the stack array
Create an integer array called stack with these exact values: 10, 20, 30, 40, 50
DSA C
Hint

Use int stack[5] = {10, 20, 30, 40, 50}; to create the array.

2
Set the top index
Create an integer variable called top and set it to 4 to represent the top index of the stack
DSA C
Hint

Use int top = 4; to set the top index.

3
Peek the top element
Create an integer variable called peek and set it to the top element of the stack using stack[top]
DSA C
Hint

Use int peek = stack[top]; to get the top element.

4
Print the peeked element
Print the value of peek using printf with the format specifier %d
DSA C
Hint

Use printf("%d\n", peek); to print the top element.

Practice

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

Solution

  1. Step 1: Understand the peek operation

    The peek operation looks at the top element of the stack without changing the stack.
  2. Step 2: Compare with other stack operations

    Pop removes the top element, push adds an element, and isEmpty checks if stack is empty.
  3. Final Answer:

    Returns the top element without removing it -> Option B
  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 removes the element
  • Mixing peek with push or isEmpty
2. Which of the following is the correct syntax to peek the top element of a stack named stack in C if top is the index of the top element and arr is the array storing stack elements?
easy
A. int x = arr[top - 1];
B. int x = arr[top + 1];
C. int x = arr[0];
D. int x = arr[top];

Solution

  1. Step 1: Understand stack top indexing

    Top points to the current top element index in the array.
  2. Step 2: Access the top element

    Accessing arr[top] gives the top element. Using top+1 or top-1 is incorrect as it points to wrong positions.
  3. Final Answer:

    int x = arr[top]; -> Option D
  4. Quick Check:

    Top index points to top element [OK]
Hint: Use arr[top] to peek top element [OK]
Common Mistakes:
  • Using top+1 or top-1 instead of top
  • Accessing arr[0] assuming stack bottom is top
  • Confusing top index with element value
3. What will be the output of the following C code snippet?
int stack[3] = {10, 20, 30};
int top = 2;
printf("%d", stack[top]);
medium
A. 10
B. 20
C. 30
D. Runtime error

Solution

  1. Step 1: Identify the top element index and stack contents

    Stack array has elements 10 at index 0, 20 at 1, and 30 at 2. Top is 2.
  2. Step 2: Access and print the top element

    stack[top] = stack[2] = 30, so printf prints 30.
  3. Final Answer:

    30 -> Option C
  4. Quick Check:

    stack[top] = 30 [OK]
Hint: Print stack[top] to get top element [OK]
Common Mistakes:
  • Confusing index 0 as top
  • Assuming top is out of range
  • Expecting pop removes element but code only prints
4. Find the error in this C code snippet that tries to peek the top element of a stack:
int stack[5] = {1, 2, 3, 4, 5};
int top = 4;
int peek() {
  return stack[top + 1];
}
medium
A. Accessing stack[top + 1] causes out-of-bounds error
B. top should be initialized to -1
C. Function should return void, not int
D. Stack array size is too small

Solution

  1. Step 1: Analyze the peek function access

    Peek returns stack[top + 1], which is stack[5] here (top=4), exceeding array size 5 (0-4).
  2. Step 2: Understand correct top indexing

    Top points to current top element, so peek should return stack[top], not stack[top + 1].
  3. Final Answer:

    Accessing stack[top + 1] causes out-of-bounds error -> Option A
  4. Quick Check:

    Index out of bounds error [OK]
Hint: Peek uses stack[top], not stack[top+1] [OK]
Common Mistakes:
  • Using top+1 instead of top for peek
  • Ignoring array bounds causing runtime error
  • Incorrect top initialization assumptions
5. Given a stack implemented using an array stack[5] and a variable top initialized to -1, which sequence of operations correctly peeks the top element after pushing 3 elements (10, 20, 30)?
hard
A. stack[++top] = 10; stack[++top] = 20; stack[++top] = 30; int x = stack[top];
B. stack[top] = 10; top = top + 1; stack[top] = 20; top = top + 1; stack[top] = 30; top = top + 1; int x = stack[top];
C. stack[top++] = 10; stack[top++] = 20; stack[top++] = 30; int x = stack[top];
D. top = 0; stack[top] = 10; top = 1; stack[top] = 20; top = 2; stack[top] = 30; int x = stack[top + 1];

Solution

  1. Step 1: Understand push operation with top

    Using stack[++top] = value increments top first, then assigns value, correctly pushing elements.
  2. Step 2: Peek top element after pushes

    After pushing 3 elements, top points to last pushed element. Accessing stack[top] gives top element.
  3. Final Answer:

    stack[++top] = 10; stack[++top] = 20; stack[++top] = 30; int x = stack[top]; -> Option A
  4. Quick Check:

    Push increments top, peek uses stack[top] [OK]
Hint: Use stack[++top] to push, stack[top] to peek [OK]
Common Mistakes:
  • Using post-increment top++ causing wrong indexing
  • Accessing stack[top + 1] for peek
  • Not initializing top to -1 before push
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