public static void test()
    {
        StackInheritance stack = new StackInheritance();

        stack.Push(1);
        Console.WriteLine(stack.Display());
        stack.Push(2);
        Console.WriteLine(stack.Display()); stack.Display();
        stack.Pop();
        Console.WriteLine(stack.Display());
        double peekValue = Convert.ToDouble(stack.Peek());

        Console.WriteLine("peek result: " + stack.Peek());
        Console.WriteLine(stack.Display());
        Console.ReadKey();
    }
        static void Main(string[] args)
        {
            var stack = new StackInheritance();

            // create data to store in List
            // create data to store in List
            double[] numbers = { 1, 2, 3 };



            for (int i = 0; i < numbers.Length; i++)
            {
                stack.Push(numbers[i]);
            }

            Console.WriteLine("Get the stack using Push() method----");
            stack.Display();
            Console.WriteLine();

            Console.WriteLine("Get the first item of stack using Peek() method---");
            Console.WriteLine("The first item is " + stack.Peek());
            Console.WriteLine();

            Console.WriteLine("After using the Pop() method----");
            stack.Pop();
            stack.Display();
        }
예제 #3
0
        static void Main(string[] args)
        {
            StackInheritance stack    = new StackInheritance();
            Double           anDouble = 34567;

            // use method Push to add items to stack
            stack.Push(12);
            stack.Display();
            stack.Push(25);
            stack.Display();
            stack.Push(anDouble);
            stack.Display();
            stack.Push(35.25);
            stack.Display();
            Console.WriteLine("Top one is " + stack.Peek());


            // remove items from stack
            try
            {
                while (true)
                {
                    Double removedObject = stack.Pop();
                    Console.WriteLine($"{removedObject} popped");
                    stack.Display();
                }
            }
            catch (EmptyListException emptyListException)
            {
                // if exception occurs, write stack trace
                //Console.Error.WriteLine(emptyListException.StackTrace);
                Console.Error.WriteLine(emptyListException.Message);
            }
        }
예제 #4
0
        static void Main(string[] args)
        {
            StackInheritance stack    = new StackInheritance();
            Double           anDouble = 34567;

            Console.WriteLine("-----Empty Stack-----");
            stack.Display();
            // use method Push to add items to stack
            Console.WriteLine("-----Adding first Item----");
            stack.Push(12);
            stack.Display();
            Console.WriteLine("-----Adding Second Item----");
            stack.Push(25);
            stack.Display();
            Console.WriteLine("-----Adding Third Item----");
            stack.Push(anDouble);
            stack.Display();
            Console.WriteLine("-----Adding Fourth Item----");
            stack.Push(35.25);
            stack.Display();
            Console.WriteLine("-----Peeking First Item-----");
            Console.WriteLine("Top item: " + stack.Peek());
            Console.WriteLine();


            // remove items from stack
            try
            {
                while (true)
                {
                    Console.WriteLine("----Removed Item-----");
                    Double removedObject = stack.Pop();
                    Console.WriteLine($"{removedObject} popped");
                    stack.Display();
                }
            }
            catch (EmptyListException emptyListException)
            {
                // if exception occurs, write stack trace
                //Console.Error.WriteLine(emptyListException.StackTrace);
                Console.Error.WriteLine(emptyListException.Message);
            }
        }
예제 #5
0
    static void Main()
    {
        StackInheritance stack = new StackInheritance();

        double aDouble_1 = .4;
        double aDouble_2 = 0.3;
        double aDouble_3 = 03.4;
        double aDouble_4 = 20.4;

        stack.Push(aDouble_1);
        stack.Push(aDouble_2);
        stack.Display();
        stack.Push(aDouble_3);
        stack.Display();
        stack.Push(aDouble_4);
        stack.Display();

        while (true)
        {
            Console.WriteLine("\nStack - Test");
            Console.WriteLine("--------------");
            Console.WriteLine("1. Push");
            Console.WriteLine("2. Peek");
            Console.WriteLine("3. Pop");
            Console.WriteLine("4. EXIT");

            int option = int.Parse(Console.ReadLine());

            switch (option)
            {
            case 1:
                Console.Write("Enter an Element : ");
                try
                {
                    string numberToPush = Console.ReadLine();
                    double number_1     = double.Parse(numberToPush);
                    stack.Push(number_1);
                }
                catch (EmptyListException emptyListException)
                {
                    Console.Error.WriteLine(emptyListException.StackTrace);
                }
                catch (Exception ex)
                {
                    Console.WriteLine("{0} Exception caught.", ex);
                }
                stack.Display();
                break;

            case 2:
                Console.WriteLine("Enter an Element to Peek : ");
                try
                {
                    //string numberToPeek = Console.ReadLine();
                    //double number_2 = double.Parse(numberToPeek);
                    stack.Peek();
                }
                catch (EmptyListException emptyListException)
                {
                    Console.Error.WriteLine(emptyListException.StackTrace);
                }
                catch (Exception ex)
                {
                    Console.WriteLine("{0} Exception caught.", ex);
                }
                stack.Display();
                break;

            case 3:
                Console.WriteLine("Test Pop : ");
                try
                {
                    object element = stack.Pop();
                    Console.WriteLine($"{element} popped");
                }
                catch (EmptyListException emptyListException)
                {
                    Console.Error.WriteLine(emptyListException.StackTrace);
                }
                catch (Exception ex)
                {
                    Console.WriteLine("{0} Exception caught.", ex);
                }
                stack.Display();
                break;

            case 4:
                Environment.Exit(0);
                break;

            default:
                throw new ArgumentException("Value not supported :" + option);
            }
        }
    }
        // Method: ConvertToPostfix: converts the infix expression to postfix notation
        public string ConvertToPostfix(string UserInput)
        {
            StackInheritance stack = new StackInheritance();
            stack.Push('(');
            infix.Append(')');
            infix.Insert(0,UserInput,1);
            while(!(stack.IsEmpty()))
            {
                for(int i = 0; i < infix.Length; i++)
                {

                    if ((infix[i] == '0') | (infix[i] == '1') | (infix[i] == '2') | (infix[i] == '3') | (infix[i] == '4') | (infix[i] == '5') | (infix[i] == '6') | (infix[i] == '7') | (infix[i] == '8') | (infix[i] == '9'))

                    {
                        postfix.Append(infix[i]);

                    }

                    else if (infix[i] == '(')
                    {
                        stack.Push(infix[i]);

                    }
                    else if (stack.IsOperator(infix[i])) // checks if infix is operator, not to be confused with the stack being checked.
                    {
                        // While there is an operator at the top of the stack
                        while (stack.IsOperator((char)stack.Peek()))
                        {
                            // if the operator at the top of the stack is equal or greater precedence
                            // then pop the operator at the top of the stack
                            if (stack.Precedence(infix[i], (char)stack.Peek()))
                            {
                                postfix.Append(stack.Pop());

                            }

                            // else append the operator from infix to postfix
                            //else
                            {

                            }
                        }
                        stack.Push(infix[i]);
                    }
                    else if(infix[i] == ')')
                    {
                        while (stack.IsOperator((char)stack.Peek()))
                        {
                            postfix.Append(stack.Pop());
                        }
                        Console.WriteLine("The character you are about to Pop is:{0}", stack.Peek());

                        char parenthesisCheck = (char)stack.Peek();
                        if (parenthesisCheck == '(')
                        {
                            stack.Pop();

                        }
                        else
                        {
                            Console.WriteLine("For some reason you have not reached the final leftparenthesis");
                        }
                    }
                }
            }

            return postfix.ToString();
        }
예제 #7
0
        static void Main(string[] args)
        {
            //ENVIRONMENT SETUP++++++++++++++++++++++++++++++++++++++++++++++++++++++++
            //create stack container
            StackInheritance stack = new StackInheritance();

            //create data values to be added to the stack
            double num1 = 23.42;
            double num2 = -923.11;
            double num3 = 0.0001;
            double num4 = 92323231;

            //TESTING PUSH+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
            Console.WriteLine("PUSHING items onto the stack!");
            Console.WriteLine("---------------------------------------------------------------");
            try
            {
                Console.WriteLine($"PUSHING {num1} onto the stack.");
                stack.Push(num1);
                Console.WriteLine($"Currently, the top item in the stack is {stack.Peek()}");
                Console.WriteLine("Using List's Display method to see entire contents of the stack:");
                stack.Display();

                Console.WriteLine($"PUSHING {num2} onto the stack.");
                stack.Push(num2);
                Console.WriteLine($"Currently, the top item in the stack is {stack.Peek()}");
                Console.WriteLine("Using List's Display method to see entire contents of the stack:");
                stack.Display();

                Console.WriteLine($"PUSHING {num3} onto the stack.");
                stack.Push(num3);
                Console.WriteLine($"Currently, the top item in the stack is {stack.Peek()}");
                Console.WriteLine("Using List's Display method to see entire contents of the stack:");
                stack.Display();

                Console.WriteLine($"PUSHING {num4} onto the stack.");
                stack.Push(num4);
                Console.WriteLine($"Currently, the top item in the stack is {stack.Peek()}");
                Console.WriteLine("Using List's Display method to see entire contents of the stack:");
                stack.Display();
            }
            catch (EmptyListException e)
            {
                Console.WriteLine(e.Message);
            }


            //TESTING POP++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
            Console.WriteLine("\n+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n");
            Console.WriteLine("POPPING items from the stack!");
            Console.WriteLine("---------------------------------------------------------------");
            try
            {
                while (true)
                {
                    Console.WriteLine($"POPPING {stack.Pop()} from the stack.");
                    Console.WriteLine($"Currently, the top item in the stack is {stack.Peek()}");
                    Console.WriteLine("Using List's Display method to see entire contents of the stack:");
                    stack.Display();
                }
            }
            catch (EmptyListException e)
            {
                Console.WriteLine(e.Message);
            }

            //TESTING PEEK+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
            Console.WriteLine("\n+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n");
            Console.WriteLine("NOTE: Peek was used throughout this program to look at the top of the stack.");
        }
예제 #8
0
        static void Main(string[] args)
        {
            StackInheritance stack = new StackInheritance();

            Console.WriteLine("Stacking Fibonatti's numbers divided by 10");
            stack.Push(0.1);
            stack.Push(0.1);
            stack.Push(0.2);
            stack.Push(0.3);
            stack.Push(0.5);
            stack.Push(0.8);
            stack.Push(1.3);
            stack.Push(2.1);
            Console.WriteLine("First 8 Fibonatti's numbers divided by 10");
            stack.Display();
            Console.WriteLine("Popping 4");
            stack.Pop();
            stack.Pop();
            stack.Pop();
            stack.Pop();
            stack.Display();
            Console.WriteLine("Peeking the result..." + LinkedListLibrary.MyToString.ToString(stack.Peek()));
            Console.WriteLine("Popping 2 more...");
            stack.Pop();
            stack.Pop();
            Console.WriteLine("Showing the stack.");
            stack.Display();
        }