Ejemplo n.º 1
0
            public Node Search(BinSearchTree tree, int s)
            {
                Node a = tree.root;

                while (a.data != s && a != null)
                {
                    if (s < a.data)
                    {
                        a = a.left;
                    }
                    else
                    {
                        a = a.right;
                    }
                }
                return(a);
            }
Ejemplo n.º 2
0
            public void Insert(BinSearchTree tree, int s)
            {
                Node a = tree.root;
                Node b = null;

                while (a.data != s && a != null)
                {
                    b = a;
                    if (s < a.data)
                    {
                        a = a.left;
                    }
                    else
                    {
                        a = a.right;
                    }
                }
                if (a == null)
                {
                    a       = new Node(s);
                    a.left  = null;
                    a.right = null;
                    if (b == null)
                    {
                        tree.root = a;
                        return;
                    }
                    if (s < b.data)
                    {
                        b.left = a;
                    }
                    else
                    {
                        b.right = a;
                    }
                }
            }
Ejemplo n.º 3
0
        static void Main(string[] args)
        {
            IDictionary neu;
            int         ersteauswahl;
            int         zweiteauswahl;
            int         dritteauswahl;
            int         daten;
            bool        weiter = true;

            ersteauswahl = Convert.ToInt32(Console.ReadLine());
            // 1 ist SetSorted
            //2 ist SetUnsorted
            //3 ist Multisetsorted
            //4 ist Multisetunsorted


            //test

            /* Zweiteauswahl:
             *
             * erst array
             * dann liste
             * dann bin
             * dann avl
             * dann treap
             *
             *
             */
            switch (ersteauswahl)
            {
            case 1:
            {
                zweiteauswahl = Convert.ToInt32(Console.ReadLine());
                switch (zweiteauswahl)
                {
                case 1:
                {
                    neu = new SetSortedArray();
                    break;
                }

                case 2:
                {
                    neu = new SetSortedLinkedList();
                    break;
                }

                case 3:
                {
                    neu = new BinSearchTree();
                    break;
                }

                case 4:
                {
                    neu = new AVLTree();
                    break;
                }

                case 5:
                {
                    neu = new Treap();
                    break;
                }

                default:
                    break;
                }
                break;
            }

            case 2:
            {
                zweiteauswahl = Convert.ToInt32(Console.ReadLine());
                switch (zweiteauswahl)
                {
                case 1:
                {
                    neu = new SetUnsortedArray();
                    break;
                }

                case 2:
                {
                    neu = new SetUnsortedLinkedList();
                    break;
                }

                default:
                    break;
                }

                break;
            }

            case 3:
            {
                zweiteauswahl = Convert.ToInt32(Console.ReadLine());
                switch (zweiteauswahl)
                {
                case 1:
                {
                    neu = new MultiSetSortedArray();
                    break;
                }

                case 2:
                {
                    neu = new MultiSetSortedLinkedList();
                    break;
                }

                default:
                    break;
                }

                break;
            }

            case 4:
            {
                zweiteauswahl = Convert.ToInt32(Console.ReadLine());
                switch (zweiteauswahl)
                {
                case 1:
                {
                    neu = new MultiSetUnsortedArray();
                    break;
                }

                case 2:
                {
                    neu = new MultiSetUnsortedLinkedList();
                    break;
                }

                default:
                    break;
                }

                break;
            }

            default:
                break;
            }


            while (weiter == true)
            {
                switch (dritteauswahl)
                {
                case 1:
                {
                    neu.print();
                    break;
                }

                case 2:
                {
                    dritteauswahl = Convert.ToInt32(Console.ReadLine());
                    daten         = Convert.ToInt32(Console.ReadLine());
                    if (daten < 0)
                    {
                        throw new ArgumentOutOfRangeException("Darf nicht kleiner 0 sein!");
                    }
                    neu.delete(daten);
                    break;
                }

                case 3:
                {
                    dritteauswahl = Convert.ToInt32(Console.ReadLine());
                    daten         = Convert.ToInt32(Console.ReadLine());
                    if (daten < 0)
                    {
                        throw new ArgumentOutOfRangeException("Darf nicht kleiner 0 sein!");
                    }
                    neu.search(daten);
                    break;
                }

                case 4:
                {
                    dritteauswahl = Convert.ToInt32(Console.ReadLine());
                    daten         = Convert.ToInt32(Console.ReadLine());
                    if (daten < 0)
                    {
                        throw new ArgumentOutOfRangeException("Darf nicht kleiner 0 sein!");
                    }
                    neu.insert(daten);
                    break;
                }

                default:
                    break;
                }
            }
        }
Ejemplo n.º 4
0
        static void Main(string[] args)
        {
            int         switch_on    = 0;
            IDictionary Test         = null;
            string      interfaceTyp = "";

            void askMultiSetSorted()
            {
                interfaceTyp = "MultiSetSorted";
                Console.WriteLine($"Welche Art von {interfaceTyp} möchten sie testen?");
                Console.WriteLine("MultiSetSortedLinkedList  --> 1");
                Console.WriteLine("MultiSetSortedArray       --> 2");

                try
                {
                    switch_on = Convert.ToInt32(ReadLine());
                }
                catch (System.FormatException) { switch_on = 0; }

                switch (switch_on)
                {
                case 1:
                    Test = new MultiSetSortedLinkedList();
                    break;

                case 2:
                    Test = new MultiSetSortedArray();
                    break;

                default:
                    switch_on = 0;
                    Console.WriteLine("Nö\n");
                    break;
                }
            }

            void askMultiSetUnsorted()
            {
                interfaceTyp = "MultiSetUnsorted";
                Console.WriteLine($"Welche Art von {interfaceTyp} möchten sie testen?");
                Console.WriteLine("MultiSetUnsortedLinkedList  --> 1");
                Console.WriteLine("MultiSetUnSortedArray       --> 2");

                try
                {
                    switch_on = Convert.ToInt32(ReadLine());
                }
                catch (System.FormatException) { switch_on = 0; }

                switch (switch_on)
                {
                case 1:
                    Test = new MultiSetUnsortedLinkedList();
                    break;

                case 2:
                    Test = new MultiSetUnsortedArray();
                    break;

                default:
                    switch_on = 0;
                    Console.WriteLine("Nö\n");
                    break;
                }
            }

            void askSetSorted()
            {
                interfaceTyp = "SetSorted";
                Console.WriteLine($"Welche Art von {interfaceTyp} möchten sie testen?");
                Console.WriteLine("SetSortedLinkedList  --> 1");
                Console.WriteLine("SetSortedArray       --> 2");
                Console.WriteLine("BinSearchTree        --> 3");
                Console.WriteLine("Treap                --> 4");
                Console.WriteLine("AVL-Tree             --> 5");

                try
                {
                    switch_on = Convert.ToInt32(ReadLine());
                }
                catch (System.FormatException) { switch_on = 0; }

                switch (switch_on)
                {
                case 1:
                    Test = new SetSortedLinkedList();
                    break;

                case 2:
                    Test = new SetSortedArray();
                    break;

                case 3:
                    Test = new BinSearchTree();
                    break;

                case 4:
                    Test = new Treap();
                    break;

                case 5:
                    Test = new AVLTree();
                    break;

                default:
                    switch_on = 0;
                    Console.WriteLine("Nö\n");
                    break;
                }
            }

            void askSetUnsorted()
            {
                interfaceTyp = "SetUnsorted";
                Console.WriteLine($"Welche Art von {interfaceTyp} möchten sie testen?");
                Console.WriteLine("SetUnsortedLinkedList  --> 1");
                Console.WriteLine("SetUnsortedArray       --> 2");
                Console.WriteLine("HashTabSepChain        --> 3");
                Console.WriteLine("HashTabQuadProb        --> 4");

                try
                {
                    switch_on = Convert.ToInt32(ReadLine());
                }
                catch (System.FormatException) { switch_on = 0; }

                switch (switch_on)
                {
                case 1:
                    Test = new SetUnsortedLinkedList();
                    break;

                case 2:
                    Test = new SetUnsortedArray();
                    break;

                case 3:
                    Test = new HashTabSepChain();
                    break;

                case 4:
                    Test = new HashTabQuadProb();
                    break;

                default:
                    switch_on = 0;
                    Console.WriteLine("Nö\n");
                    break;
                }
            }

            do
            {
                Console.WriteLine("Welchen Typ möchten Sie testen?");
                Console.WriteLine("MultiSetSorted    --> 1");
                Console.WriteLine("MultiSetUnsorted  --> 2");
                Console.WriteLine("SetSorted         --> 3");
                Console.WriteLine("SetUnsorted       --> 4");

                try
                {
                    switch_on = Convert.ToInt32(ReadLine());
                }
                catch (System.FormatException) { switch_on = 0; }

                switch (switch_on)
                {
                case 1:
                    askMultiSetSorted();
                    break;

                case 2:
                    askMultiSetUnsorted();
                    break;

                case 3:
                    askSetSorted();
                    break;

                case 4:
                    askSetUnsorted();
                    break;

                default:
                    switch_on = 0;
                    Console.WriteLine("Nö\n");
                    break;
                }

                //OP-Ausführen
                if (switch_on != 0)
                {
                    string eingabe = "";

                    do
                    {
                        string methode   = "";
                        op     operation = null;

                        Console.WriteLine("Welche Operation soll es denn sein? ('0' zum ändern der Struktur)");
                        Console.WriteLine("Einfugen  --> 1");
                        Console.WriteLine("Suchen    --> 2");
                        Console.WriteLine("Loschen   --> 3");
                        Console.WriteLine("Ausgeben  --> 4");

                        try
                        {
                            switch_on = Convert.ToInt32(ReadLine());
                        }
                        catch (System.FormatException) { switch_on = 50; }

                        //OP_Switch
                        switch (switch_on)
                        {
                        case 1:
                            methode   = "Einfügen";
                            operation = new op(Test.Insert);
                            break;

                        case 2:
                            methode   = "Suchen";
                            operation = new op(Test.Search);
                            break;

                        case 3:
                            methode   = "Löschen";
                            operation = new op(Test.Delete);
                            break;

                        case 4:
                            Console.WriteLine();
                            Test.Print();
                            Console.WriteLine();
                            break;

                        case 0:
                            eingabe = "OP_switch";
                            break;

                        default:
                            Console.WriteLine("Nö\n");
                            break;
                        }

                        if (operation != null)
                        {
                            Console.WriteLine($"Geben sie die Zahlen zum {methode} ein (zum ändern der Operation '+' drücken)");
                            eingabe = ReadLine();
                            while (eingabe != "+")
                            {
                                try
                                {
                                    Console.WriteLine(operation(Convert.ToInt32(eingabe)));
                                }
                                catch (FormatException)
                                {
                                    Console.WriteLine("Nur Zahlen eingeben:");
                                }
                                eingabe = ReadLine();
                            }
                        }
                    }while (eingabe != "OP_switch");
                }
            }while (true); //Endlose wiederholung
        }