Peek lets you see the top without breaking the stack--why struggle when you can just peek?
Why Peek Top Element of Stack in DSA C?
Imagine you have a stack of plates piled up on your kitchen counter. You want to see which plate is on the very top without removing any plates. If you try to lift plates one by one just to see the top, it will be messy and slow.
Manually lifting plates to check the top is slow and can cause the stack to fall or get mixed up. Similarly, manually searching through data to find the last added item wastes time and risks errors.
The peek operation lets you look at the top item of the stack instantly without removing it. This keeps the stack safe and lets you quickly check the latest item added.
int topElement(int stack[], int size) {
return stack[size - 1]; // manually access last element
}int peek(Stack *stack) {
if (stack->top == -1) return -1; // empty
return stack->items[stack->top];
}Peek makes it easy to check the most recent item added without disturbing the stack.
When undoing actions in a text editor, peek helps see the last action without removing it, so you can decide whether to undo or not.
Manual checking of the top item is slow and risky.
Peek quickly shows the top item without removing it.
Useful in undo features, expression evaluation, and more.
Practice
peek operation do in a stack?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 BQuick Check:
Peek = top element without removal [OK]
- Confusing peek with pop operation
- Thinking peek removes the element
- Mixing peek with push or isEmpty
stack in C if top is the index of the top element and arr is the array storing stack elements?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 DQuick Check:
Top index points to top element [OK]
- Using top+1 or top-1 instead of top
- Accessing arr[0] assuming stack bottom is top
- Confusing top index with element value
int stack[3] = {10, 20, 30};
int top = 2;
printf("%d", stack[top]);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 CQuick Check:
stack[top] = 30 [OK]
- Confusing index 0 as top
- Assuming top is out of range
- Expecting pop removes element but code only prints
int stack[5] = {1, 2, 3, 4, 5};
int top = 4;
int peek() {
return stack[top + 1];
}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 AQuick Check:
Index out of bounds error [OK]
- Using top+1 instead of top for peek
- Ignoring array bounds causing runtime error
- Incorrect top initialization assumptions
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)?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 AQuick Check:
Push increments top, peek uses stack[top] [OK]
- Using post-increment top++ causing wrong indexing
- Accessing stack[top + 1] for peek
- Not initializing top to -1 before push
Ready to prove it?
Pass the test and this pattern moves unknown
