Push values onto a stack and pop them back in last-in, first-out order.

Algorithm

The replay uses the same three values in every language, so this C# DSA implementation can be compared directly with the rest of the DSA track.

Basic Implementation

basic.cs
using System;
using System.Collections.Generic;
using System.Linq;

class Program {
    static string Render(List<int> values) => string.Join(" -> ", values);
    static void Main() {
        var stack = new Stack<int>();
        foreach (var value in new[] {10, 20, 30}) stack.Push(value);
        var popped = new List<int>();
        while (stack.Count > 0) popped.Add(stack.Pop());
        Console.WriteLine(Render(popped));
    }
}

Complexity

  • Time: O(1) per push/pop
  • Space: O(n)

Implementation notes

  • Keep the explicit stack/queue operations. Library shortcuts that only produce the final list hide the data-structure behavior this lesson is meant to replay.
  • The final output uses a deterministic a -> b -> c format for cross-language comparison.
top The top is the most recently pushed value.
LIFO A stack removes values in last-in, first-out order.