예제 #1
0
        public void TestConcurrencyRead()
        {
            BinaryTree tree = new BinaryTree ();
            for (int i = 0; i < 20; i++) {
                tree.Insert (i);
            }

            List<Thread> threads = new List<Thread> ();
            for (int j = 0; j < 30; j++) {
                threads.Add (
                    new Thread (() => {
                        for (int i = 0; i < 20; i++) {
                            Assert.True (tree.Contains (i));
                        }

                        for (int i = 20; i < 25; i++) {
                            Assert.False (tree.Contains (i));
                        }
                    }));
            }

            Parallel.ForEach (threads, (thread) => {
                thread.Start ();
                thread.Join ();
            });
        }
예제 #2
0
        public void TestConcurrencyWrite()
        {
            BinaryTree tree = new BinaryTree ();
            int multiplier = 1;

            List<Thread> threads = new List<Thread> ();
            for (int j = 0; j < 30; j++) {
                threads.Add (
                    new Thread (() => {
                        for (int i = 0; i < 20; i++) {
                            tree.Insert(i+(10^multiplier));
                        }

                        for (int i = 0; i < 20; i++) {
                            Assert.True (tree.Contains (i+(10^multiplier)));
                        }
                    }));
                multiplier++;
            }

            Parallel.ForEach (threads, (thread) => {
                thread.Start ();
                thread.Join ();
            });
        }
예제 #3
0
        public void BasicTreeTest()
        {
            BinaryTree tree = new BinaryTree ();
            for (int i = 0; i < 20; i++) {
                tree.Insert (i);
            }

            for (int i = 0; i < 20; i++) {
                Assert.True (tree.Contains (i));
            }

            for (int i = 20; i < 25; i++) {
                Assert.False (tree.Contains (i));
            }
        }
예제 #4
0
        static void Main(string[] args)
        {
            BinaryTree binaryTree = new BinaryTree();

            binaryTree.Insert(80);
            binaryTree.Insert(55);
            binaryTree.Insert(69);
            binaryTree.Insert(77);
            binaryTree.Insert(8);
            binaryTree.Insert(32);
        }
예제 #5
0
        public static void Main()
        {
            //BinaryTree<int> tree = new BinaryTree<int>(7,
            //    new BinaryTree<int>(19,
            //        new BinaryTree<int>(1),
            //        new BinaryTree<int>(12)),
            //    new BinaryTree<int>(14,
            //        new BinaryTree<int>(23),
            //        new BinaryTree<int>(6)));

            BinaryTree <int> tree = new BinaryTree <int>(5,
                                                         new BinaryTree <int>(3, new BinaryTree <int>(2), new BinaryTree <int>(4)),
                                                         new BinaryTree <int>(7));

            tree.Insert(6);

            tree.DFS(Console.WriteLine);
            //Console.WriteLine(tree.Contains(3245));
        }
예제 #6
0
        static void Main(string[] args)
        {
            BinaryTree theTree = new BinaryTree();

            theTree.Insert(23);
            theTree.Insert(43);
            theTree.Insert(12);
            theTree.Insert(54);
            theTree.Insert(22);
            theTree.Insert(76);
            theTree.Insert(54);
            theTree.Insert(34);
            Console.WriteLine("Inorder Traversal : ");
            theTree.InorderTransveral(theTree.ReturnRoot());
            Console.WriteLine(" ");

            //Checks each node of the tree and outputs if node is present or not
            //using Search()
            Console.WriteLine(" ");
            theTree.Search(theTree.root, 2);
            Console.ReadKey();
        }
예제 #7
0
        static void Main(string[] args)
        {
            BinaryTree binaryTree = new BinaryTree();

            binaryTree.Insert(12);
            binaryTree.Insert(3);
            binaryTree.Insert(15);
            binaryTree.Insert(6);
            binaryTree.Insert(9);
            binaryTree.Insert(21);

            binaryTree.Display();
            Console.WriteLine("\nBinary Tree Count = {0}", binaryTree.Count());

            Console.ReadLine();
        }
예제 #8
0
        static void Main(string[] args)
        {
            BinaryTree bTree = new BinaryTree();


            bTree.Insert(1);
            bTree.Insert(6);
            bTree.Insert(2);
            bTree.Insert(4);
            bTree.Insert(5);
            bTree.Insert(3);

            bTree.Display();
            bTree.Search(1);

            Console.ReadLine();
        }
예제 #9
0
        static void Main(string[] args)
        {
            int ch, dataValue;

            BinaryTree binaryTree = new BinaryTree();

            do
            {
                Console.WriteLine("--- BINARY SEARCH TREE  ----");
                Console.WriteLine("\n");
                Console.WriteLine("1 - Insert");
                Console.WriteLine("2 - Show Tree In Order Traversal");
                Console.WriteLine("3 - Exit");
                Console.Write("Choose one option: ");
                ch = Int32.Parse(Console.ReadLine());
                Console.WriteLine("\n");
                switch (ch)
                {
                case 1:
                    Console.WriteLine("Inform a number to insert: ");
                    dataValue = Int32.Parse(Console.ReadLine());
                    binaryTree.Insert(dataValue);
                    break;

                case 2:
                    Console.WriteLine("Showing Tree in Order Traversal");
                    binaryTree.inOrderTraversal();
                    break;

                case 3:
                    break;

                default:
                    Console.WriteLine("Choose an available option!");
                    break;
                }
            } while (ch != 3);
        }
예제 #10
0
        static void Main(string[] args)
        {
            //Create a Tree
            BinaryTree theTree = new BinaryTree();

            //Arraylist full of letters
            char[] letters = new char[10] {
                'J', 'F', 'D', 'A', 'G', 'C', 'H', 'B', 'I', 'E'
            };

            for (int i = 0; i < 10; i++)
            {
                theTree.Insert(letters[i]);
            }

            theTree.Traverse();

            theTree.Search('H');

            theTree.Search('Z');

            ReadKey();
        }
예제 #11
0
        static void Main(string[] args)
        {
            ///creating head node by parameterised constructor
            BinaryTree <int> binaryTree = new BinaryTree <int>(56);

            binaryTree.Insert(30);
            binaryTree.Insert(70);
            binaryTree.Insert(22);
            binaryTree.Insert(40);
            binaryTree.Insert(11);
            binaryTree.Insert(18);
            binaryTree.Insert(3);
            binaryTree.Insert(60);
            binaryTree.Insert(95);
            binaryTree.Insert(65);
            binaryTree.Insert(63);
            binaryTree.Insert(67);
            ///Displaying binary tree
            binaryTree.Display();
            binaryTree.GetSize();
            binaryTree.Search(63);
        }
예제 #12
0
        public static void Main(string[] args)
        {
            var tree = new BinaryTree();
            tree.Insert(10);
            tree.Insert(9);
            tree.Insert(12);
            tree.Insert(1);
            tree.Insert(4);
            tree.Insert(2);
            Display(tree.Head);
            Console.WriteLine();
            tree.Remove(10);
            Display(tree.Head);
            Console.WriteLine();
            tree.Insert(3);
            tree.Insert(7);
            tree.Insert(11);
            tree.Insert(6);
            tree.Insert(15);
            Display(tree.Head);
            Console.WriteLine();
            tree.Insert(10);
            tree.Remove(15);
            Display(tree.Head);
            Console.WriteLine();
            tree.Remove(1);
            Display(tree.Head);
            Console.WriteLine();
            tree.Remove(4);
            Display(tree.Head);
            Console.WriteLine();
            tree.Insert(18);
            tree.Insert(19);
            tree.Insert(21);
            tree.Insert(20);
            tree.Insert(22);
            tree.Balanse();

            var contains4 = tree.Contains(7);
            Console.WriteLine(tree.Count);
        }
예제 #13
0
        public static void Main(string[] args)
        {
            BinaryTree b = new BinaryTree();

            b.Insert(1, "repos1.txt");
            b.Insert(6, "repos2.txt");
            b.Insert(2, "repos3.txt");
            b.Insert(4, "repos4.txt");
            b.Insert(5, "repos5.txt");
            b.Insert(3, "repos6.txt");
            b.Insert(798, "repos7.txt");
            b.Insert(998, "repos8.txt");
            b.Insert(0, "repos9.txt");
            b.Insert(75, "repos10.txt");
            b.Insert(56, "repos11.txt");
            b.Insert(98790, "repos12.txt");

            b.Display();

            Console.WriteLine("Insert requested element:");
            int element = int.Parse(Console.ReadLine());

            string result = b.Search(element);

            Console.WriteLine("The repository of the requested element is:");
            Console.WriteLine(result);

            Console.ReadLine();
        }
예제 #14
0
        static void Main(string[] args)
        {
            BinaryTree <int> tree = new BinaryTree <int>(56);

            tree.Insert(70);
            tree.Insert(30);
            tree.Insert(40);
            tree.Insert(22);
            tree.Insert(11);
            tree.Insert(16);
            tree.Insert(3);
            tree.Insert(60);
            tree.Insert(95);
            tree.Insert(65);
            tree.Insert(63);
            tree.Insert(67);
            tree.Search(63);
            Console.ReadLine();
        }