Exemplo n.º 1
0
        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--;
            }
        }
Exemplo n.º 2
0
        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());
        }