static void Main(string[] args) { int cmdCount = int.Parse(Console.ReadLine()); var stack = new StackMax <int>(); int cmdCounter = 0; while (cmdCounter != cmdCount) { var cmd = Console.ReadLine(); switch (cmd) { case "max": Console.WriteLine(stack.Max()); break; case "pop": stack.Pop(); break; default: string[] push = cmd.Split(' '); stack.Push(int.Parse(push[1])); break; } cmdCounter++; } Console.ReadKey(); }
public static int[] TestAdapter(string[] input) { int cmdCount = int.Parse(input[0]); var stack = new StackMax <int>(); List <int> Result = new List <int>(); int cmdCounter = 0; while (cmdCounter != cmdCount) { var cmd = input[cmdCounter + 1]; switch (cmd) { case "max": Result.Add(stack.Max()); break; case "pop": stack.Pop(); break; default: string[] push = cmd.Split(' '); stack.Push(int.Parse(push[1])); break; } cmdCounter++; } return(Result.ToArray()); }
public void GetMax_PassEmptyStack_ThrowsException() { Exception exception = null; try { Stack s = new Stack(); Assert.AreEqual(1, StackMax.GetMax(s)); } catch (Exception ex) { exception = ex; } Assert.IsNotNull(exception); }
public void GetMax_PassOneElement_Returns1() { Stack s = new Stack(new[] { 1 }); Assert.AreEqual(1, StackMax.GetMax(s)); }
public void GetMax_PassStack202Max_Returns202() { Stack s = new Stack(new[] { 1, 32, 3, 4, 202, 29 }); Assert.AreEqual(202, StackMax.GetMax(s)); }