📖 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
Step 1: Understand the peek operation
The peek operation looks at the top element of the stack without changing the stack.
Step 2: Compare with other stack operations
Pop removes the top element, push adds an element, and isEmpty checks if stack is empty.
Final Answer:
Returns the top element without removing it -> Option B
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
Step 1: Understand stack top indexing
Top points to the current top element index in the array.
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.
Final Answer:
int x = arr[top]; -> Option D
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
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.
Step 2: Access and print the top element
stack[top] = stack[2] = 30, so printf prints 30.
Final Answer:
30 -> Option C
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
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).
Step 2: Understand correct top indexing
Top points to current top element, so peek should return stack[top], not stack[top + 1].
Final Answer:
Accessing stack[top + 1] causes out-of-bounds error -> Option A
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
Step 1: Understand push operation with top
Using stack[++top] = value increments top first, then assigns value, correctly pushing elements.
Step 2: Peek top element after pushes
After pushing 3 elements, top points to last pushed element. Accessing stack[top] gives top element.
Final Answer:
stack[++top] = 10; stack[++top] = 20; stack[++top] = 30; int x = stack[top]; -> Option A
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 unknownstrongwhile earning +1 Grip toward your certificate.