Example #1
0
        static void Main(string[] args)
        {
            Console.WriteLine("Stack Tester!");
            stack <char> myStack = new stack <char>(10);

            myStack.Push('m');
            myStack.Push('B');
            Console.WriteLine(myStack.Pop());// should return b
            myStack.Push('o');
            myStack.Push('o');
            Console.WriteLine(myStack.Pop());                      //return o
            Console.WriteLine(myStack.Pop());                      //o
            Console.WriteLine(myStack.Pop());                      //m
            Console.WriteLine(myStack.Pop());                      // underflow
            Console.WriteLine(RPN.Converter("5 4 * 3 2 * + 1 -")); //25
            queue <int> myQueue = new queue <int>(5);

            myQueue.Push(5);
            myQueue.Push(3);
            myQueue.Push(7);
            myQueue.Push(8);
            myQueue.Push(4);
            myQueue.Output();                     //53784
            Console.WriteLine(myQueue.Dequeue()); //5
            myQueue.Push(1);
            myQueue.Push(8);                      //overflow
            myQueue.Output();                     //13784
            Console.WriteLine(myQueue.Dequeue()); //3
            Console.WriteLine(myQueue.Dequeue()); //7
            Console.WriteLine(myQueue.Dequeue()); //8
            Console.WriteLine(myQueue.Dequeue()); //4
            Console.WriteLine(myQueue.Dequeue()); //1
            Console.WriteLine(myQueue.Dequeue()); //queue empty
        }
Example #2
0
        static public int Converter(string input)
        {
            stack <int> myStack = new stack <int>(10);

            foreach (string i in input.Split(' '))
            {
                try
                {
                    myStack.Push(Convert.ToInt32(i));
                }
                catch
                {
                    int num2 = Convert.ToInt32(myStack.Pop());
                    int num1 = Convert.ToInt32(myStack.Pop());
                    switch (i)
                    {
                    case "+":
                        myStack.Push(num1 + num2);
                        break;

                    case "-":
                        myStack.Push(num1 - num2);
                        break;

                    case "/":
                        myStack.Push(num1 / num2);
                        break;

                    case "*":
                        myStack.Push(num1 * num2);
                        break;
                    }
                }
            }
            return(myStack.Pop());
        }