public void Push_Pop_Success_Cases() { var stack = new DS.Stack <int>(); Assert.AreEqual(0, stack.Count); var counter = 0; while (counter <= 50) { stack.Push(counter); Assert.AreEqual(counter, stack.Peek()); Assert.AreEqual(counter + 1, stack.Count); counter++; } counter--; while (counter > 0) { Assert.AreEqual(counter, stack.Pop()); Assert.AreEqual(counter - 1, stack.Peek()); Assert.AreEqual(counter, stack.Count); counter--; } }
public static bool ValidParanthesis(string paran) { DS.Stack <char> stack = new DS.Stack <char>(paran.Length); foreach (char ch in paran) { if (ch == '(' || ch == '{' || ch == '[') { stack.Push(ch); } else { if (stack.IsEmpty()) { return(false); } char ch1 = stack.Pop(); if (!IsMatchingPair(ch1, ch)) { return(false); } } } return(stack.IsEmpty()); }