Esempio n. 1
0
        static void Main()
        {
            //int? i = 100;
            //Nullable<int> i = 100;


            //IntegerStack o = new IntegerStack(3);
            //o.Push(10);
            //o.Push(20);
            //o.Push(30);

            //Console.WriteLine(o.Pop());
            //Console.WriteLine(o.Pop());
            //Console.WriteLine(o.Pop());
            //Console.WriteLine(o.Pop());

            MyStack <int> o = new MyStack <int>(3);

            o.Push(10);
            o.Push(20);
            o.Push(30);

            Console.WriteLine(o.Pop());
            Console.WriteLine(o.Pop());
            Console.WriteLine(o.Pop());


            MyStack <string> o2 = new MyStack <string>(3);

            o2.Push("1");
            Console.WriteLine(o2.Pop());



            Console.ReadLine();
        }
Esempio n. 2
0
        static void Main()
        {
            Console.Title = "SORT ARRAY METHODS, STACK AMD QUEUE";
            Console.SetWindowSize(80, 45);
            bool bMainMenu = true;

            do
            { // user can back to the main manu
                Console.Clear();
                MyServiceFunctions.WriteColorLine(ConsoleColor.Yellow, "Modes:\n 1 = Sort Array: Two Methods\n 2 = Stack API with array\n 3 = Queue API with array\n 4 = EXIT");
                Console.Write("Please enter your selection: ");
                switch (MyServiceFunctions.ReadAndValidate(false))
                {
                case 1:
                    #region **** TWO SORTONG METHODS FOR ARRAY ****
                    Console.Clear();
                    MyServiceFunctions.WriteColorLine(ConsoleColor.Blue, "*** Sort Array: Two Methods***\n ");
                    int[] userArray = InitUserArray();
                    BubbleSorter <int>    bublesorter     = new BubbleSorter <int>(userArray);
                    InsertionSorter <int> insertionSorter = new InsertionSorter <int>(userArray);
                    bool bRepeat = true;
                    do          // user can select sorting method again
                    {
                        MyServiceFunctions.WriteColorLine(ConsoleColor.Yellow, "\nSort method:\n 1 = Bubble sorting by Ascending\n 2 = Bubble sorting by Descending");
                        MyServiceFunctions.WriteColorLine(ConsoleColor.Yellow, " 3 = Insertion Sort by Ascending\n 4 = Insertion Sort by Descending\n 5 = Back to Main menu");
                        Console.Write("Please enter your selection: ");
                        switch (MyServiceFunctions.ReadAndValidate(false))
                        {
                        case 1:
                            MyServiceFunctions.WriteColorLine(ConsoleColor.Blue, "\n***Bubble sorting by Ascending***");
                            bublesorter.SortAscending();
                            bublesorter.Print();
                            break;

                        case 2:
                            MyServiceFunctions.WriteColorLine(ConsoleColor.Blue, "\n***Bubble sorting by Descending***");
                            bublesorter.SortDescending();
                            bublesorter.Print();
                            break;

                        case 3:
                            MyServiceFunctions.WriteColorLine(ConsoleColor.Blue, "\n***Insertion sort by Ascending***");
                            insertionSorter.SortAscending();
                            insertionSorter.Print();
                            break;

                        case 4:
                            MyServiceFunctions.WriteColorLine(ConsoleColor.Blue, "\n***Insertion sort by Descending***");
                            insertionSorter.SortDescending();
                            insertionSorter.Print();
                            break;

                        case 5:
                            bRepeat = false;
                            break;

                        default:
                            MyServiceFunctions.WriteColorLine(ConsoleColor.Red, "Invalid selection. Please select 1, 2, 3, 4, or 5");
                            break;
                        }
                    } while (bRepeat);
                    break;

                    #endregion
                case 2:
                    #region **** IMPLEMENT STACK ****
                    Console.Clear();
                    MyServiceFunctions.WriteColorLine(ConsoleColor.Blue, "*** Implement Stack ***\n");
                    Console.Write("Enter the SIZE of Stack: ");
                    MyStack <int> stack   = new MyStack <int>(MyServiceFunctions.ReadAndValidate(false)); // 'false' arg. means Zero is not allowed as the size of the array
                    bool          bAction = true;
                    do                                                                                    //user can repeat operations with Stack
                    {
                        MyServiceFunctions.WriteColorLine(ConsoleColor.Yellow, "\n 1 = Push\n 2 = Pop\n 3 = Peek\n 4 = State of Stack (IsEmpty, IsFull)\n 5 = Back to Main Menu");
                        Console.Write("Select operation for Stack: ");
                        switch (MyServiceFunctions.ReadAndValidate(false))
                        {
                        case 1:
                            Console.Write("\nEnter string to PUSH: ");
                            //stack.Push(Console.ReadLine());
                            stack.Push(MyServiceFunctions.ReadAndValidate());
                            stack.Print();
                            break;

                        case 2:
                            if (!stack.IsEmpty())
                            {
                                Console.Write("\nPOP gets the element: ");
                            }
                            MyServiceFunctions.WriteColorLine(ConsoleColor.Green, Convert.ToString(stack.Pop()));
                            stack.Print();
                            break;

                        case 3:
                            if (!stack.IsEmpty())
                            {
                                Console.Write("\nPEEK gets the top element in Stack: ");
                            }
                            MyServiceFunctions.WriteColorLine(ConsoleColor.Green, Convert.ToString((stack.Peek())));
                            stack.Print();
                            break;

                        case 4:
                            Console.WriteLine("\nStack state are:");
                            if (stack.IsEmpty())
                            {
                                MyServiceFunctions.WriteColorLine(ConsoleColor.White, " - Stack is empty");
                            }
                            else
                            {
                                MyServiceFunctions.WriteColorLine(ConsoleColor.White, " - Stack is not empty");
                            }
                            if (stack.IsFull())
                            {
                                MyServiceFunctions.WriteColorLine(ConsoleColor.White, " - Stack is full");
                            }
                            else
                            {
                                MyServiceFunctions.WriteColorLine(ConsoleColor.White, " - Stack is not full");
                            }
                            break;

                        case 5:
                            bAction = false;
                            break;

                        default:
                            MyServiceFunctions.WriteColorLine(ConsoleColor.Red, "Invalid selection. Please select 1, 2, 3, 4 or 5");
                            break;
                        }
                    } while (bAction);
                    break;

                    #endregion
                case 3:
                    #region **** IMPLEMENT CIRCULAR BUFFER QUEUE ****
                    Console.Clear();
                    MyServiceFunctions.WriteColorLine(ConsoleColor.Blue, "*** Implement Queue - Circular Buffer ***\n");
                    int queueItem;
                    Console.Write("Enter the SIZE of buffer: ");
                    MyQueue <int> userQueue    = new MyQueue <int>(MyServiceFunctions.ReadAndValidate(false));
                    bool          bRepeatQueue = true;
                    do        //user can repeat operations with Queue
                    {
                        MyServiceFunctions.WriteColorLine(ConsoleColor.Yellow, "\n 1 = Enqueue\n 2 = Dequeue\n 3 = State of Buffer (IsEmpty, IsFull)");
                        MyServiceFunctions.WriteColorLine(ConsoleColor.Yellow, " 4 = Print Buffer\n 5 = Back to Main menu");
                        Console.Write("Select operation for Buffer: ");
                        switch (MyServiceFunctions.ReadAndValidate(false))
                        {
                        case 1:          // Enqueue
                            Console.Write("\nEnter the string you want to write in queue: ");
                            userQueue.Enqueue(MyServiceFunctions.ReadAndValidate());
                            userQueue.Print();
                            break;

                        case 2:          // Dequeue
                            if (userQueue.Dequeue(out queueItem))
                            {
                                Console.Write("\nThe element takken from queue is: ");
                                MyServiceFunctions.WriteColorLine(ConsoleColor.Green, Convert.ToString(queueItem));
                                userQueue.Print();
                            }
                            break;

                        case 3:          // Buffer's state (IsEmpty, IsFull)
                            Console.WriteLine("\nBuffer state are:");
                            if (userQueue.IsEmpty())
                            {
                                MyServiceFunctions.WriteColorLine(ConsoleColor.White, " - Queue is empty");
                            }
                            else
                            {
                                MyServiceFunctions.WriteColorLine(ConsoleColor.White, " - Queue is not empty");
                            }
                            if (userQueue.IsFull())
                            {
                                MyServiceFunctions.WriteColorLine(ConsoleColor.White, " - Queue is full");
                            }
                            else
                            {
                                MyServiceFunctions.WriteColorLine(ConsoleColor.White, " - Queue is not full");
                            }
                            break;

                        case 4:
                            userQueue.Print();
                            break;

                        case 5:
                            bRepeatQueue = false;
                            break;

                        default:
                            MyServiceFunctions.WriteColorLine(ConsoleColor.Red, "Invalid selection. Please select 1, 2, 3, 4, or 5");
                            break;
                        }
                    } while (bRepeatQueue);
                    break;

                    #endregion
                case 4:
                    bMainMenu = false;
                    break;

                default:
                    MyServiceFunctions.WriteColorLine(ConsoleColor.Red, "Invalid selection. Please select 1, 2, 3, or 4");
                    break;
                }
            } while (bMainMenu);
            MyServiceFunctions.WriteColorLine(ConsoleColor.White, "\nPress any key to exit...");
            Console.ReadKey();
        }