Пример #1
0
        public void DeleteTest()
        {
            SetUnsortedArray set = new SetUnsortedArray();

            set.Insert(7);
            Assert.IsTrue(set.Search(7));
            set.Delete(7);
            Assert.IsFalse(set.Search(7));
        }
Пример #2
0
        public void SearchTest()
        {
            SetUnsortedArray set = new SetUnsortedArray();

            set.Insert(7);
            set.Insert(6);
            set.Insert(3);
            set.Insert(4);
            set.Insert(3);
            set.Insert(2);
            set.Insert(0);
            Assert.IsTrue(set.Search(7));
            Assert.IsTrue(set.Search(6));
            Assert.IsTrue(set.Search(3));
            Assert.IsTrue(set.Search(4));
            Assert.IsTrue(set.Search(3));
            Assert.IsTrue(set.Search(2));
            Assert.IsTrue(set.Search(0));
            Assert.IsFalse(set.Search(5));
        }
Пример #3
0
        public void InsetTest()
        {
            SetUnsortedArray setUnsortedArray = new SetUnsortedArray();

            setUnsortedArray.Insert(7);
        }
Пример #4
0
        static void Main(string[] args)
        {
            IDictionary idict = null;

            Console.Write("Entscheiden Sie sich zunächst für einen abstrakten Datentyp ihrer Wahl:\n\n1: Unsortierte Menge\n2: Sortierte Menge\n3: Unsortierte Multimenge\n4: Sortierte Multimenge\n\nEingabe: ");
            int input = Convert.ToInt32(Console.ReadLine());

            Console.WriteLine("\n\nEntscheiden Sie sich nun für einen konkreten Datentyp:\n");

            if (input == 1)
            {
                Console.Write("1: Unsortiertes Array\n2: Unsortierte verkettete Liste\n\nEingabe: ");
                input = Convert.ToInt32(Console.ReadLine());
                if (input == 1)
                {
                    idict = new SetUnsortedArray();
                }
                else if (input == 2)
                {
                    idict = new SetUnsortedLinkedList();
                }
            }
            else if (input == 2)
            {
                Console.Write("1: Sortiertes Array\n2: Sortierte verkettete Liste\n3: Binärer Suchbaum\n4: Ausgeglichener Baum\n5: Treap\n\nEingabe: ");
                input = Convert.ToInt32(Console.ReadLine());
                if (input == 1)
                {
                    idict = new SetSortedArray();
                }
                else if (input == 2)
                {
                    idict = new SetSortedLinkedList();
                }
                else if (input == 3)
                {
                    idict = new BinSearchTree();
                }
                else if (input == 4)
                {
                    idict = new AVLTree();
                }
                else if (input == 5)
                {
                    idict = new Treap();
                }
            }
            else if (input == 3)
            {
                Console.Write("1: Unsortiertes Array mit Mehrfacheinträgen\n2: Unsortierte verkettete Liste mit Mehrfacheinträgen\n\nEingabe: ");
                input = Convert.ToInt32(Console.ReadLine());
                if (input == 1)
                {
                    idict = new MultiSetUnsortedArray();
                }
                else if (input == 2)
                {
                    idict = new MultiSetUnsortedLinkedList();
                }
            }
            else if (input == 4)
            {
                Console.Write("1: Sortiertes Array mit Mehrfacheinträgen\n2: Sortierte verkettete Liste mit Mehrfacheinträgen\n\nEingabe: ");
                input = Convert.ToInt32(Console.ReadLine());
                if (input == 1)
                {
                    idict = new MultiSetSortedArray();
                }
                else if (input == 2)
                {
                    idict = new MultiSetSortedLinkedList();
                }
            }

            Console.Write("\n\nWählen Sie eine Aktion aus:\n\n1: Datenstruktur anzeigen\n2: Element hinzufügen\n3: Element suchen\n4: Element löschen\n\nEingabe: ");
            input = Convert.ToInt32(Console.ReadLine());

            if (input == 1)
            {
                idict.print();
            }
            else if (input > 1 && input < 5)
            {
                Console.Write("\n\nGeben Sie eine positive ganze Zahl ein: ");
                int number = Convert.ToInt32(Console.ReadLine());

                if (input == 2)
                {
                    //idict.insert(number);
                    idict.insert(3);
                    idict.insert(4);
                    idict.insert(5);
                    idict.insert(2);
                    idict.print();
                    idict.delete(2);
                    Console.WriteLine();
                    idict.print();
                }
                else if (input == 3)
                {
                    idict.search(number);
                }
                else if (input == 4)
                {
                    idict.delete(number);
                }
            }
        }
Пример #5
0
        static void Start(string[] args)
        {
            Console.OutputEncoding = Encoding.Unicode;
            ConsoleKeyInfo input;
            ConsoleKeyInfo input2;
            ConsoleKeyInfo CaseInput;
            ConsoleKeyInfo input3;


            while (true) // Outer Loop - Dictionary
            {
                Console.Clear();
                Banner.PrintBanner();
                Banner.PrintDicSuggestions();
                input = Console.ReadKey();
                if (input.Key == ConsoleKey.D1)
                {
                    do // Array decision which dictionary
                    {
                        Console.Clear();
                        Banner.Printbanner1();
                        Banner.PrintTypeSuggestion();
                        IDictionary    array;
                        ConsoleKeyInfo type = Console.ReadKey();
                        if (type.Key == ConsoleKey.D1)
                        {
                            array = new MultiSetSortedArray();
                        }
                        else if (type.Key == ConsoleKey.D2)
                        {
                            array = new MultiSetUnsortedArray();
                        }
                        else if (type.Key == ConsoleKey.D3)
                        {
                            array = new SetSortedArray();
                        }
                        else if (type.Key == ConsoleKey.D4)
                        {
                            array = new SetUnsortedArray();
                        }
                        else if ((type.Key == ConsoleKey.Backspace) || (type.Key == ConsoleKey.Escape))
                        {
                            break;
                        }
                        else
                        {
                            Console.WriteLine();
                            Console.WriteLine("input not accepted try again");
                            Console.ReadKey();
                            continue;
                        }
                        do // Inner Loop Array
                        {
                            Console.Clear();
                            Banner.Printbanner1();
                            Banner.PrintOperationSuggestions();
                            input2 = Console.ReadKey();
                            if (input2.Key == ConsoleKey.S)
                            {
                                Banner.PrintSearchSuggestions();
                                int inputint;
                                try
                                {
                                    inputint = Convert.ToInt32(Console.ReadLine());
                                }
                                catch (Exception)
                                {
                                    Console.WriteLine("Input is not an Integer, press any key and repeat");
                                    Console.ReadKey();
                                    continue;
                                }

                                bool success = array.Search(inputint);
                                if (success == true)
                                {
                                    Console.WriteLine("found your integer!");
                                }
                                else
                                {
                                    Console.WriteLine("Did not find your integer");
                                }
                            }
                            else if (input2.Key == ConsoleKey.I)
                            {
                                Banner.PrintInsertSuggestions();
                                Console.WriteLine();
                                int inputint;
                                try
                                {
                                    inputint = Convert.ToInt32(Console.ReadLine());
                                }
                                catch (Exception)
                                {
                                    Console.WriteLine("Input is not an Integer, press any key and repeat");
                                    Console.ReadKey();
                                    continue;
                                }
                                bool success = array.Insert(inputint);
                                if (success == true)
                                {
                                    Console.WriteLine("successfully inserted " + inputint);
                                }
                                else
                                {
                                    Console.WriteLine("could not insert" + inputint);
                                }
                            }
                            else if (input2.Key == ConsoleKey.D)
                            {
                                Banner.PrintDeleteSuggestions();
                                Console.WriteLine();
                                int inputint;
                                try
                                {
                                    inputint = Convert.ToInt32(Console.ReadLine());
                                }
                                catch (Exception)
                                {
                                    Console.WriteLine("Input is not an Integer, press any key and repeat");
                                    Console.ReadKey();
                                    continue;
                                }
                                try
                                {
                                    bool success = array.Delete(inputint);
                                    if (success == true)
                                    {
                                        Console.WriteLine("successfully deleted " + inputint);
                                    }
                                    else
                                    {
                                        Console.WriteLine("could not delete" + inputint);
                                    }
                                }
                                catch (Exception)
                                {
                                    Console.WriteLine("Array Empty");
                                }
                            }
                            else if (input2.Key == ConsoleKey.P)
                            {
                                Banner.PrintPrintMessage();
                                Console.WriteLine();
                                array.Print();
                            }
                            Console.WriteLine("press any key to continue");
                            Console.ReadKey();
                        } while (input2.Key != ConsoleKey.Backspace);
                    }while (input.Key != ConsoleKey.Backspace);
                }
                if (input.Key == ConsoleKey.D2)
                {
                    do // Lists decision which dictionary
                    {
                        Console.Clear();
                        Banner.Printbanner2();
                        Banner.PrintTypeSuggestion();
                        IDictionary    list;
                        ConsoleKeyInfo type = Console.ReadKey();
                        if (type.Key == ConsoleKey.D1)
                        {
                            list = new MultiSetSortedLinkedList();
                        }
                        else if (type.Key == ConsoleKey.D2)
                        {
                            list = new MultiSetUnsortedLinkedList();
                        }
                        else if (type.Key == ConsoleKey.D3)
                        {
                            list = new SetSortedLinkedList();
                        }
                        else if (type.Key == ConsoleKey.D4)
                        {
                            list = new SetUnsortedLinkedList();
                        }
                        else if ((type.Key == ConsoleKey.Backspace) || (type.Key == ConsoleKey.Escape))
                        {
                            break;
                        }
                        else
                        {
                            Console.WriteLine();
                            Console.WriteLine("input not accepted try again");
                            Console.ReadKey();
                            continue;
                        }
                        do // Inner Loop Array
                        {
                            Console.Clear();
                            Banner.Printbanner2();
                            Banner.PrintOperationSuggestions();
                            input2 = Console.ReadKey();
                            if (input2.Key == ConsoleKey.S)
                            {
                                Banner.PrintSearchSuggestions();
                                Console.WriteLine();
                                int inputint;
                                try
                                {
                                    inputint = Convert.ToInt32(Console.ReadLine());
                                }
                                catch (Exception)
                                {
                                    Console.WriteLine("Input is not an Integer, press any key and repeat");
                                    Console.ReadKey();
                                    continue;
                                }
                                bool success = list.Search(inputint);
                                if (success == true)
                                {
                                    Console.WriteLine("found your integer!");
                                }
                                else
                                {
                                    Console.WriteLine("Did not find your integer");
                                }
                            }
                            else if (input2.Key == ConsoleKey.I)
                            {
                                Banner.PrintInsertSuggestions();
                                Console.WriteLine();
                                int inputint;
                                try
                                {
                                    inputint = Convert.ToInt32(Console.ReadLine());
                                }
                                catch (Exception)
                                {
                                    Console.WriteLine("Input is not an Integer, press any key and repeat");
                                    Console.ReadKey();
                                    continue;
                                }
                                bool success = list.Insert(inputint);
                                if (success == true)
                                {
                                    Console.WriteLine("successfully inserted " + inputint);
                                }
                                else
                                {
                                    Console.WriteLine("could not insert" + inputint);
                                }
                            }
                            else if (input2.Key == ConsoleKey.D)
                            {
                                Banner.PrintDeleteSuggestions();
                                Console.WriteLine();
                                int inputint;
                                try
                                {
                                    inputint = Convert.ToInt32(Console.ReadLine());
                                }
                                catch (Exception)
                                {
                                    Console.WriteLine("Input is not an Integer, press any key and repeat");
                                    Console.ReadKey();
                                    continue;
                                }
                                bool success = list.Delete(inputint);
                                if (success == true)
                                {
                                    Console.WriteLine("successfully deleted " + inputint);
                                }
                                else
                                {
                                    Console.WriteLine("could not delete" + inputint);
                                }
                            }
                            else if (input2.Key == ConsoleKey.P)
                            {
                                Console.WriteLine();
                                Banner.PrintPrintMessage();
                                Console.WriteLine();
                                list.Print();
                            }
                            Console.WriteLine("press any key to continue");
                            Console.ReadKey();
                        } while (input2.Key != ConsoleKey.Backspace);
                    }while (input.Key != ConsoleKey.Backspace);
                }
                if (input.Key == ConsoleKey.D3)
                {
                    do // BinaryTree decision which dictionary
                    {
                        IDictionary bintree = new BinSearchTree();

                        do // Inner Loop BinaryTree
                        {
                            Console.Clear();
                            Banner.Printbanner3();
                            Banner.PrintOperationSuggestions();
                            input2 = Console.ReadKey();
                            if (input2.Key == ConsoleKey.S)
                            {
                                Banner.PrintSearchSuggestions();
                                Console.WriteLine();
                                int inputint;
                                try
                                {
                                    inputint = Convert.ToInt32(Console.ReadLine());
                                }
                                catch (Exception)
                                {
                                    Console.WriteLine("Input is not an Integer, press any key and repeat");
                                    Console.ReadKey();
                                    continue;
                                }
                                bool success = bintree.Search(inputint);
                                if (success == true)
                                {
                                    Console.WriteLine("found your integer!");
                                }
                                else
                                {
                                    Console.WriteLine("Did not find your integer");
                                }
                            }
                            else if (input2.Key == ConsoleKey.I)
                            {
                                Banner.PrintInsertSuggestions();
                                Console.WriteLine();
                                int inputint;
                                try
                                {
                                    inputint = Convert.ToInt32(Console.ReadLine());
                                }
                                catch (Exception)
                                {
                                    Console.WriteLine("Input is not an Integer, press any key and repeat");
                                    Console.ReadKey();
                                    continue;
                                }
                                bool success = bintree.Insert(inputint);
                                if (success == true)
                                {
                                    Console.WriteLine("successfully inserted " + inputint);
                                }
                                else
                                {
                                    Console.WriteLine("could not insert" + inputint);
                                }
                            }
                            else if (input2.Key == ConsoleKey.D)
                            {
                                Banner.PrintDeleteSuggestions();
                                Console.WriteLine();
                                int inputint;
                                try
                                {
                                    inputint = Convert.ToInt32(Console.ReadLine());
                                }
                                catch (Exception)
                                {
                                    Console.WriteLine("Input is not an Integer, press any key and repeat");
                                    Console.ReadKey();
                                    continue;
                                }
                                bool success = bintree.Delete(inputint);
                                if (success == true)
                                {
                                    Console.WriteLine("successfully deleted " + inputint);
                                }
                                else
                                {
                                    Console.WriteLine("could not delete" + inputint);
                                }
                            }
                            else if (input2.Key == ConsoleKey.P)
                            {
                                Console.WriteLine();
                                Banner.PrintPrintMessage();
                                Console.WriteLine();
                                bintree.Print();
                            }
                            Console.WriteLine("press any key to continue");
                            Console.ReadKey();
                        } while (input2.Key != ConsoleKey.Backspace);
                        Console.WriteLine("if you want to go back, press Backspace");
                        input = Console.ReadKey();
                    }while (input.Key != ConsoleKey.Backspace);
                }
                if (input.Key == ConsoleKey.D4)
                {
                    IDictionary avltree = new AVLTree();

                    do // Inner Loop AVL
                    {
                        Console.Clear();
                        Banner.Printbanner4();
                        Banner.PrintOperationSuggestions();
                        input2 = Console.ReadKey();
                        if (input2.Key == ConsoleKey.S)
                        {
                            Banner.PrintSearchSuggestions();
                            Console.WriteLine();
                            int inputint;
                            try
                            {
                                inputint = Convert.ToInt32(Console.ReadLine());
                            }
                            catch (Exception)
                            {
                                Console.WriteLine("Input is not an Integer, press any key and repeat");
                                Console.ReadKey();
                                continue;
                            }
                            bool success = avltree.Search(inputint);
                            if (success == true)
                            {
                                Console.WriteLine("found your integer!");
                            }
                            else
                            {
                                Console.WriteLine("Did not find your integer");
                            }
                        }
                        else if (input2.Key == ConsoleKey.I)
                        {
                            Banner.PrintInsertSuggestions();
                            Console.WriteLine();
                            int inputint;
                            try
                            {
                                inputint = Convert.ToInt32(Console.ReadLine());
                            }
                            catch (Exception)
                            {
                                Console.WriteLine("Input is not an Integer, press any key and repeat");
                                Console.ReadKey();
                                continue;
                            }
                            bool success = avltree.Insert(inputint);
                            if (success == true)
                            {
                                Console.WriteLine("successfully inserted " + inputint);
                            }
                            else
                            {
                                Console.WriteLine("could not insert" + inputint);
                            }
                        }
                        else if (input2.Key == ConsoleKey.D)
                        {
                            Banner.PrintDeleteSuggestions();
                            Console.WriteLine();
                            int inputint;
                            try
                            {
                                inputint = Convert.ToInt32(Console.ReadLine());
                            }
                            catch (Exception)
                            {
                                Console.WriteLine("Input is not an Integer, press any key and repeat");
                                Console.ReadKey();
                                continue;
                            }
                            bool success = avltree.Delete(inputint);
                            if (success == true)
                            {
                                Console.WriteLine("successfully deleted " + inputint);
                            }
                            else
                            {
                                Console.WriteLine("could not delete" + inputint);
                            }
                        }
                        else if (input2.Key == ConsoleKey.P)
                        {
                            Console.WriteLine();
                            Banner.PrintPrintMessage();
                            Console.WriteLine();
                            avltree.Print();
                        }
                        Console.WriteLine("press any key to continue");
                        Console.ReadKey();
                    } while (input2.Key != ConsoleKey.Backspace);
                }
                if (input.Key == ConsoleKey.D5)
                {
                    Treap treap = new Treap();
                    do // Inner Loop Treap
                    {
                        Console.Clear();
                        Banner.Printbanner5();
                        Banner.PrintOperationSuggestions();
                        input2 = Console.ReadKey();
                        if (input2.Key == ConsoleKey.S)
                        {
                            Banner.PrintSearchSuggestions();
                            Console.WriteLine();
                            int inputint;
                            try
                            {
                                inputint = Convert.ToInt32(Console.ReadLine());
                            }
                            catch (Exception)
                            {
                                Console.WriteLine("Input is not an Integer, press any key and repeat");
                                Console.ReadKey();
                                continue;
                            }
                            bool success = treap.Search(inputint);
                            if (success == true)
                            {
                                Console.WriteLine("found your integer!");
                            }
                            else
                            {
                                Console.WriteLine("Did not find your integer");
                            }
                        }
                        else if (input2.Key == ConsoleKey.I)
                        {
                            while (true) //1 rng , 2 own
                            {
                                Console.WriteLine();
                                Console.WriteLine("Press 1 for random Priorities or 2 for own Priorities");
                                CaseInput = Console.ReadKey();
                                if (CaseInput.Key != ConsoleKey.D1 && CaseInput.Key != ConsoleKey.D2)
                                {
                                    Console.WriteLine("you did not press 1 or 2, press any key and try again");
                                    Console.ReadKey();
                                    continue;
                                }
                                else
                                {
                                    break;
                                }
                            }
                            while (true)
                            {
                                Console.Clear();
                                Banner.Printbanner5();
                                Banner.PrintInsertSuggestions();
                                Console.WriteLine();
                                int inputint;
                                try
                                {
                                    inputint = Convert.ToInt32(Console.ReadLine());
                                }
                                catch (Exception)
                                {
                                    Console.WriteLine("Input is not an Integer, press any key and repeat");
                                    Console.ReadKey();
                                    continue;
                                }

                                bool success = false;
                                if (CaseInput.Key == ConsoleKey.D1)
                                {
                                    success = treap.Insert(inputint);
                                }
                                else
                                {
                                    int inputprio;
                                    while (true)
                                    {
                                        Console.WriteLine("enter your priority as Integer: ");
                                        try
                                        {
                                            inputprio = Convert.ToInt32(Console.ReadLine());
                                        }
                                        catch (Exception)
                                        {
                                            Console.WriteLine("Input is not an Integer, press any key and repeat");
                                            Console.ReadKey();
                                            continue;
                                        }
                                        break;
                                    }
                                    success = treap.Insert(inputint, inputprio);
                                }

                                if (success == true)
                                {
                                    Console.WriteLine("successfully inserted " + inputint);
                                }
                                else
                                {
                                    Console.WriteLine("could not insert" + inputint);
                                }
                                Console.WriteLine("press Backspace to escape loop");
                                input3 = Console.ReadKey();
                                if (input3.Key == ConsoleKey.Backspace)
                                {
                                    break;
                                }
                            }
                        }
                        else if (input2.Key == ConsoleKey.D)
                        {
                            Banner.PrintDeleteSuggestions();
                            Console.WriteLine();
                            int inputint;
                            try
                            {
                                inputint = Convert.ToInt32(Console.ReadLine());
                            }
                            catch (Exception)
                            {
                                Console.WriteLine("Input is not an Integer, press any key and repeat");
                                Console.ReadKey();
                                continue;
                            }
                            bool success = treap.Delete(inputint);
                            if (success == true)
                            {
                                Console.WriteLine("successfully deleted " + inputint);
                            }
                            else
                            {
                                Console.WriteLine("could not delete" + inputint);
                            }
                        }
                        else if (input2.Key == ConsoleKey.P)
                        {
                            Console.WriteLine();
                            Banner.PrintPrintMessage();
                            Console.WriteLine();
                            treap.Print();
                        }
                        Console.WriteLine("press any key to continue");
                        Console.ReadKey();
                    } while (input2.Key != ConsoleKey.Backspace);
                }
                if (input.Key == ConsoleKey.D6)
                {
                    do // Inner Loop Hash
                    {
                        Console.Clear();
                        Banner.Printbanner6();
                        Banner.PrintHashType();
                        IDictionary    hashstuff;
                        ConsoleKeyInfo type = Console.ReadKey();
                        if (type.Key == ConsoleKey.D1)
                        {
                            hashstuff = new HashTabQuadProb();
                        }
                        else if (type.Key == ConsoleKey.D2)
                        {
                            hashstuff = new HashTabSepChain();
                        }
                        else if (type.Key == ConsoleKey.Backspace)
                        {
                            break;
                        }
                        else
                        {
                            Console.WriteLine("Input not accepted");
                            Console.WriteLine("Press any key to try again");
                            Console.ReadKey();
                            continue;
                        }
                        do
                        {
                            Console.Clear();
                            Banner.Printbanner6();
                            Banner.PrintOperationSuggestions();
                            input2 = Console.ReadKey();
                            if (input2.Key == ConsoleKey.S)
                            {
                                Banner.PrintSearchSuggestions();
                                Console.WriteLine();
                                int inputint;
                                try
                                {
                                    inputint = Convert.ToInt32(Console.ReadLine());
                                }
                                catch (Exception)
                                {
                                    Console.WriteLine("Input is not an Integer, press any key and repeat");
                                    Console.ReadKey();
                                    continue;
                                }
                                bool success = hashstuff.Search(inputint);
                                if (success == true)
                                {
                                    Console.WriteLine("found your integer!");
                                }
                                else
                                {
                                    Console.WriteLine("Did not find your integer");
                                }
                            }
                            else if (input2.Key == ConsoleKey.I)
                            {
                                Banner.PrintInsertSuggestions();
                                Console.WriteLine();
                                int inputint;
                                try
                                {
                                    inputint = Convert.ToInt32(Console.ReadLine());
                                }
                                catch (Exception)
                                {
                                    Console.WriteLine("Input is not an Integer, press any key and repeat");
                                    Console.ReadKey();
                                    continue;
                                }
                                bool success = hashstuff.Insert(inputint);
                                if (success == true)
                                {
                                    Console.WriteLine("successfully inserted " + inputint);
                                }
                                else
                                {
                                    Console.WriteLine("could not insert" + inputint);
                                }
                            }
                            else if (input2.Key == ConsoleKey.D)
                            {
                                Banner.PrintDeleteSuggestions();
                                Console.WriteLine();
                                int inputint;
                                try
                                {
                                    inputint = Convert.ToInt32(Console.ReadLine());
                                }
                                catch (Exception)
                                {
                                    Console.WriteLine("Input is not an Integer, press any key and repeat");
                                    Console.ReadKey();
                                    continue;
                                }
                                bool success = hashstuff.Delete(inputint);
                                if (success == true)
                                {
                                    Console.WriteLine("successfully deleted " + inputint);
                                }
                                else
                                {
                                    Console.WriteLine("could not delete" + inputint);
                                }
                            }
                            else if (input2.Key == ConsoleKey.P)
                            {
                                Console.WriteLine();
                                Banner.PrintPrintMessage();
                                Console.WriteLine();
                                hashstuff.Print();
                            }
                            Console.WriteLine();
                            Console.ReadKey();
                        } while (input2.Key != ConsoleKey.Backspace);
                        ////
                    } while (input.Key != ConsoleKey.Backspace);
                }


                //input = Console.ReadKey();
            }
        }