using System.Collections.Generic;
public static void Main()
SetOfStacks set = new SetOfStacks();
for (int i = 1; i <= 7; i++)
Console.WriteLine("Current Stack: {0}\nValues: {1}\n", set.Count, set.Print());
Console.WriteLine("Current Stack: {0}\nValues: {1}\n", set.Count, set.Print());
Console.WriteLine("Current Stack: {0}\nValues: {1}\n", set.Count, set.Print());
for (int i = 1; i <= 30; i++)
Console.WriteLine("Current Stack: {0}\nValues: {1}\n", set.Count, set.Print());
for (int i = 1; i <= 32; i++)
Console.WriteLine("Current Stack: {0}\nValues: {1}\n", set.Count, set.Print());
for (int i = 1; i <= 50; i++)
Console.WriteLine("Current Stack: {0}\nValues: {1}\n", set.Count, set.Print());
for (int i = 1; i <= 32; i++)
Console.WriteLine("Current Stack: {0}\nValues: {1}\n", set.Count, set.Print());
private Stack<Stack<int>> stackSet;
stackSet = new Stack<Stack<int>>();
public void Push(int val)
if (stackSet.Count == 0 || stackSet.Peek().Count == 10)
stackSet.Push(new Stack<int>());
stackSet.Peek().Push(val);
if (stackSet.Peek().Count > 0)
value = stackSet.Peek().Pop();
StringBuilder sb = new StringBuilder();
string formatter = " | ";
foreach(var s in stackSet)
sb.Append(i + formatter);
sb.Length -= formatter.Length;
sb.Append("[Empty Stack]");