Push Operation on Stack in DSA C# - Time & Space Complexity
We want to understand how the time needed to add an item to a stack changes as the stack grows.
How does the push operation behave when the stack size increases?
Analyze the time complexity of the following code snippet.
public class Stack
{
private int[] items;
private int top = -1;
public Stack(int size)
{
items = new int[size];
}
public void Push(int item)
{
items[++top] = item;
}
}
This code adds a new item to the top of the stack by increasing the top index and storing the item.
Identify the loops, recursion, array traversals that repeat.
- Primary operation: Single assignment to the array at the incremented top index.
- How many times: Exactly once per push call, no loops or recursion involved.
Each push adds one item with a fixed number of steps, no matter how big the stack is.
| Input Size (n) | Approx. Operations |
|---|---|
| 10 | 1 |
| 100 | 1 |
| 1000 | 1 |
Pattern observation: The time to push stays the same even if the stack grows larger.
Time Complexity: O(1)
This means pushing an item takes the same short time no matter how many items are already in the stack.
[X] Wrong: "Push takes longer as the stack grows because the array is bigger."
[OK] Correct: The push just places the item at the next free spot; it does not scan or move existing items, so time stays constant.
Knowing that push is a quick, constant-time operation helps you explain stack efficiency clearly in interviews.
"What if the stack uses a dynamic array that resizes when full? How would the time complexity of push change then?"
Practice
Push operation do in a stack?Solution
Step 1: Understand stack behavior
A stack follows Last In First Out (LIFO) principle, where elements are added or removed from the top.Step 2: Define Push operation
The Push operation adds a new element on top of the stack, increasing its size by one.Final Answer:
Adds an element to the top of the stack -> Option AQuick Check:
Push = Add top element [OK]
- Confusing Push with Pop operation
- Thinking Push removes elements
- Assuming Push accesses bottom element
stack in C#?Solution
Step 1: Recall Stack method for adding elements
In C#, the Stack class uses the methodPush()to add elements.Step 2: Check syntax correctness
The correct syntax is callingPushwith the value inside parentheses:stack.Push(10);Final Answer:
stack.Push(10); -> Option CQuick Check:
Push method call syntax = stack.Push(value) [OK]
- Using Add or Insert which are not stack methods
- Assigning value directly to Push
- Missing parentheses in method call
Stack<int> stack = new Stack<int>();
stack.Push(5);
stack.Push(10);
stack.Push(15);
Console.WriteLine(string.Join(", ", stack));Solution
Step 1: Understand push order and stack iteration
Elements pushed are 5, then 10, then 15. Stack stores last pushed on top.Step 2: Determine iteration order when printing
Stack enumerates from top to bottom, so output order is 15, 10, 5.Final Answer:
15, 10, 5 -> Option BQuick Check:
Stack top to bottom = 15, 10, 5 [OK]
- Assuming stack prints in push order
- Confusing stack with queue order
- Forgetting stack is LIFO
Stack<string> stack = new Stack<string>();
stack.Push "hello";
stack.Push("world");Solution
Step 1: Check syntax of Push calls
The first Push call is written asstack.Push "hello";missing parentheses.Step 2: Confirm correct method usage
Push requires parentheses around argument:stack.Push("hello");Final Answer:
Missing parentheses in first Push call -> Option DQuick Check:
Method calls need parentheses [OK]
- Ignoring parentheses syntax
- Thinking stack can't hold strings
- Assuming missing semicolon causes error here
Stack<int> stack = new Stack<int>();
for (int i = 1; i <= 3; i++)
{
stack.Push(i * 2);
}
stack.Push(10);
stack.Push(stack.Pop() + 5);
Solution
Step 1: Trace the for loop pushing values
Loop pushes 2, 4, 6 in order. Stack top is 6, bottom is 2.Step 2: Push 10, then pop top and push pop+5
Push 10: stack top to bottom 10, 6, 4, 2. Pop removes 10, 10 + 5 = 15, push 15: top to bottom 15, 6, 4, 2.Final Answer:
15, 6, 4, 2 -> Option AQuick Check:
Stack after operations = 15, 6, 4, 2 [OK]
- Confusing pop value used for new push
- Forgetting pop removes top element
- Assuming push adds without removing
Ready to prove it?
Pass the test and this pattern moves unknown
