Ejemplo n.º 1
0
        static void Main(string[] args)
        {
            DateTime    past = DateTime.Now;
            BTree <int> tree = new BTree <int>(50);

            for (int i = 0; i < 10000; i++)
            {
                tree.Add(i);
            }
            TimeSpan delta = DateTime.Now - past;

            Console.WriteLine(delta.Seconds);


            Console.WriteLine("Searching");

            int v = -1;

            do
            {
                Console.WriteLine("Key:\n");
                var b = int.TryParse(Console.ReadLine(), out v);
                if (b)
                {
                    Console.WriteLine(tree.Search(v));
                    Console.WriteLine("Comparisons : {0}", tree.SearchComparisons);
                }
            }while (v != -1);

            tree.Delete(100);
            Console.WriteLine(tree.SearchComparisons);

            Console.ReadKey();
        }
Ejemplo n.º 2
0
        static void Main(string[] args)
        {
            Random r = new Random();

            //Random r = new Random();
            List <int> used = new List <int>();
            var        tree = new BTree(3);

            for (int i = 0; i < 50; i++)
            {
                int newVal;
                do
                {
                    newVal = r.Next(0, 50);
                } while (used.Contains(newVal));
                used.Add(newVal);
                tree.Insert(newVal);
                //Console.WriteLine(tree);
                //tree.Print(tree.Root, 0);
                //Console.WriteLine($"-------{i}------- Dodano: {newVal}");
            }
            Console.WriteLine("Before saving to file.");
            Console.WriteLine(tree);
            BTree.WriteToBinaryFile <BTree>("xd", tree);
            var tree2 = BTree.ReadFromBinaryFile <BTree>("xd");

            Console.WriteLine("After reading from file.");
            Console.WriteLine(tree2);
            int odp;

            do
            {
                Console.WriteLine("Please select option.");
                Console.WriteLine("1. Add element, 2. Remove element, 3.Print tree, 4. Exit.");
                odp = Int32.Parse(Console.ReadLine());
                switch (odp)
                {
                case 1:
                    try
                    {
                        Console.Write("Enter value to add: ");
                        int x = Int32.Parse(Console.ReadLine());
                        tree.Insert(x);
                    }catch (Exception e) { }

                    break;

                case 2:
                    try
                    {
                        Console.Write("Enter value to remove: ");
                        int y = Int32.Parse(Console.ReadLine());
                        tree.Delete(y);
                    }
                    catch (Exception e) { }

                    break;

                case 3:
                    Console.WriteLine(tree);
                    break;

                default:
                    return;
                }
            } while (odp != 4);
            //for (int i = 0; i < 50; i++)
            //{
            //    int val = used[i];
            //    tree.Delete(val);
            //    Console.WriteLine(tree);
            //    Console.WriteLine($"-------{i}------- Usunięto: {val}");
            //}

            Console.ReadKey();
        }
Ejemplo n.º 3
0
        static void Main(string[] args)
        {
            BTree Btree = new BTree();
            bool  flag  = true;

            while (flag)
            {
                Console.Clear();
                Console.WriteLine("Demo: BTree of Integer");
                Console.WriteLine("--------------------------------");
                Console.WriteLine("1 - Insert node");
                Console.WriteLine("2 - Delete node");
                Console.WriteLine("3 - Search node");
                Console.WriteLine("4 - Traverse Tree In-Order");
                Console.WriteLine("5 - Display Tree");
                Console.WriteLine("6 - Exit");
                Console.WriteLine("--------------------------------");
                ConsoleKeyInfo cki = Console.ReadKey(true);
                switch (cki.Key)
                {
                case ConsoleKey.D1:
                    Console.WriteLine("Enter node to insert:");
                    string insertInput = Console.ReadLine();
                    if (Int32.TryParse(insertInput, out int insertNode))
                    {
                        Btree.Insert(insertNode);
                        Console.WriteLine("Node " + insertNode + " has been inserted.");
                    }
                    else
                    {
                        Console.WriteLine("Invalid input. Enter integer number");
                    }
                    Console.WriteLine("\nPress any key...");
                    Console.ReadLine();
                    break;

                case ConsoleKey.D2:
                    Console.WriteLine("Enter node to delete:");
                    string deleteInput = Console.ReadLine();
                    if (Int32.TryParse(deleteInput, out int deleteNode))
                    {
                        if (Btree.Search(deleteNode) == false)
                        {
                            Console.WriteLine("No such node in the tree");
                        }
                        else
                        {
                            Btree.Delete(deleteNode);
                            Console.WriteLine("Node " + deleteNode + " has been deleted.");
                        }
                    }
                    else
                    {
                        Console.WriteLine("Invalid input. Enter integer number");
                    }
                    Console.WriteLine("\nPress any key...");
                    Console.ReadLine();
                    break;

                case ConsoleKey.D3:
                    Btree.PrintTree();
                    Console.WriteLine("Enter node to search:");
                    string getInput = Console.ReadLine();
                    if (Int32.TryParse(getInput, out int getNode))
                    {
                        if (Btree.Search(getNode) == true)
                        {
                            Console.WriteLine("Node " + getNode + " is present in the tree");
                        }
                        else
                        {
                            Console.WriteLine("No such node in the tree");
                        }
                    }
                    else
                    {
                        Console.WriteLine("Invalid input. Enter integer number");
                    }
                    Console.WriteLine("\nPress any key...");
                    Console.ReadLine();
                    break;

                case ConsoleKey.D4:
                    Console.WriteLine("Current tree In-Order traverse:");
                    Btree.TraverseInOrder();
                    Console.WriteLine("\nPress any key...");
                    Console.ReadLine();
                    break;

                case ConsoleKey.D5:
                    Console.WriteLine("Current tree(from left to right):");
                    Btree.PrintTree();
                    Console.WriteLine("\nPress any key...");
                    Console.ReadLine();
                    break;

                case ConsoleKey.D6:
                    flag = false;
                    break;

                default:
                    Console.WriteLine("Invalid menu item, enter numbers 1-4");
                    Console.WriteLine("\nPress any key...");
                    Console.ReadLine();
                    break;
                }
            }
        }