Bird
Raised Fist0
DSA C#programming

Push Operation on Stack in DSA C#

Choose your learning style10 modes available
Mental Model
A stack adds new items only on top, like stacking plates one on another.
Analogy: Imagine a stack of plates in a kitchen. You always put a new plate on top, never in the middle or bottom.
Top -> null
Dry Run Walkthrough
Input: stack: empty, push values 1, then 2, then 3
Goal: Add values to the top of the stack one by one
Step 1: push 1 onto empty stack
Top -> [1] -> null
Why: First item becomes the top of the stack
Step 2: push 2 onto stack
Top -> [2] -> [1] -> null
Why: New item goes on top, previous top moves down
Step 3: push 3 onto stack
Top -> [3] -> [2] -> [1] -> null
Why: Keep adding new items on top, stack grows upwards
Result:
Top -> 3 -> 2 -> 1 -> null
Annotated Code
DSA C#
using System;

public class StackNode
{
    public int Data;
    public StackNode Next;

    public StackNode(int data)
    {
        Data = data;
        Next = null;
    }
}

public class Stack
{
    private StackNode Top;

    public Stack()
    {
        Top = null;
    }

    public void Push(int value)
    {
        StackNode newNode = new StackNode(value);
        newNode.Next = Top; // link new node to current top
        Top = newNode; // update top to new node
    }

    public void PrintStack()
    {
        StackNode current = Top;
        while (current != null)
        {
            Console.Write(current.Data + " -> ");
            current = current.Next;
        }
        Console.WriteLine("null");
    }
}

public class Program
{
    public static void Main()
    {
        Stack stack = new Stack();
        stack.Push(1);
        stack.Push(2);
        stack.Push(3);
        stack.PrintStack();
    }
}
newNode.Next = Top; // link new node to current top
connect new node to current top to keep stack order
Top = newNode; // update top to new node
move top pointer to new node to make it the new top
OutputSuccess
3 -> 2 -> 1 -> null
Complexity Analysis
Time: O(1) because push adds one item at the top without traversing
Space: O(1) because only one new node is created per push
vs Alternative: Compared to arrays, linked stack push avoids shifting elements, making it faster and simpler
Edge Cases
pushing onto an empty stack
top points to the new node, stack has one element
DSA C#
Top = newNode; // update top to new node
When to Use This Pattern
When you need to add items in last-in-first-out order, use stack push to add on top quickly.
Common Mistakes
Mistake: Not linking the new node's next to the current top before updating top
Fix: Set newNode.Next = Top before Top = newNode to keep stack order
Summary
Adds a new item on top of the stack.
Use when you want to store items in last-in-first-out order.
Always link new node to current top before moving top pointer.

Practice

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

Solution

  1. Step 1: Understand stack behavior

    A stack follows Last In First Out (LIFO) principle, where elements are added or removed from the top.
  2. Step 2: Define Push operation

    The Push operation adds a new element on top of the stack, increasing its size by one.
  3. Final Answer:

    Adds an element to the top of the stack -> Option A
  4. Quick Check:

    Push = Add top element [OK]
Hint: Push means add on top of stack [OK]
Common Mistakes:
  • Confusing Push with Pop operation
  • Thinking Push removes elements
  • Assuming Push accesses bottom element
2. Which of the following is the correct syntax to push an integer value 10 onto a stack named stack in C#?
easy
A. stack.Insert(10);
B. stack.Add(10);
C. stack.Push(10);
D. stack.Push = 10;

Solution

  1. Step 1: Recall Stack method for adding elements

    In C#, the Stack class uses the method Push() to add elements.
  2. Step 2: Check syntax correctness

    The correct syntax is calling Push with the value inside parentheses: stack.Push(10);
  3. Final Answer:

    stack.Push(10); -> Option C
  4. Quick Check:

    Push method call syntax = stack.Push(value) [OK]
Hint: Use stack.Push(value) to add elements [OK]
Common Mistakes:
  • Using Add or Insert which are not stack methods
  • Assigning value directly to Push
  • Missing parentheses in method call
3. What will be the output after executing the following C# code?
Stack<int> stack = new Stack<int>();
stack.Push(5);
stack.Push(10);
stack.Push(15);
Console.WriteLine(string.Join(", ", stack));
medium
A. 5, 10, 15
B. 15, 10, 5
C. 10, 15, 5
D. 15, 5, 10

Solution

  1. Step 1: Understand push order and stack iteration

    Elements pushed are 5, then 10, then 15. Stack stores last pushed on top.
  2. Step 2: Determine iteration order when printing

    Stack enumerates from top to bottom, so output order is 15, 10, 5.
  3. Final Answer:

    15, 10, 5 -> Option B
  4. Quick Check:

    Stack top to bottom = 15, 10, 5 [OK]
Hint: Stack prints top element first [OK]
Common Mistakes:
  • Assuming stack prints in push order
  • Confusing stack with queue order
  • Forgetting stack is LIFO
4. Identify the error in the following C# code that tries to push elements onto a stack:
Stack<string> stack = new Stack<string>();
stack.Push "hello";
stack.Push("world");
medium
A. Push method does not exist
B. Stack cannot hold strings
C. Missing semicolon after second Push
D. Missing parentheses in first Push call

Solution

  1. Step 1: Check syntax of Push calls

    The first Push call is written as stack.Push "hello"; missing parentheses.
  2. Step 2: Confirm correct method usage

    Push requires parentheses around argument: stack.Push("hello");
  3. Final Answer:

    Missing parentheses in first Push call -> Option D
  4. Quick Check:

    Method calls need parentheses [OK]
Hint: Always use parentheses with method calls [OK]
Common Mistakes:
  • Ignoring parentheses syntax
  • Thinking stack can't hold strings
  • Assuming missing semicolon causes error here
5. Given a stack initially empty, what will be the content of the stack after executing the following code?
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);
hard
A. 15, 6, 4, 2
B. 10, 8, 4, 2
C. 15, 10, 6, 4, 2
D. 10, 15, 6, 4, 2

Solution

  1. Step 1: Trace the for loop pushing values

    Loop pushes 2, 4, 6 in order. Stack top is 6, bottom is 2.
  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.
  3. Final Answer:

    15, 6, 4, 2 -> Option A
  4. Quick Check:

    Stack after operations = 15, 6, 4, 2 [OK]
Hint: Track push/pop stepwise to find final stack [OK]
Common Mistakes:
  • Confusing pop value used for new push
  • Forgetting pop removes top element
  • Assuming push adds without removing
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