Пример #1
0
        public void DoTreeStuff()
        {
            var tree = new BinarySearchTree();

            tree.Insert(9);
            tree.Insert(4);
            tree.Insert(6);
            tree.Insert(20);
            tree.Insert(170);
            tree.Insert(15);
            tree.Insert(1);

            for (int i = 0; i < 10; i++)
            {
                TreeNode randomNode = tree.GetRandomNode2();
                Debug.WriteLine("random tree node: " + randomNode.Data);
            }

            Debug.WriteLine(tree.MaxDepth(tree.root));
            var ancestor = tree.LowestCommonAncestor(6, 1);

            tree.TraverseInOrder();
            //tree.Insert(100);
            //tree.Insert(50);
            //tree.Insert(70);
            //tree.Insert(40);
            //tree.Insert(43); //subtree
            //tree.Insert(42);
            //tree.Insert(44);
            //tree.Lookup(6);
            //tree.Remove(20);
            //var queue = new Queue<TreeNode>();
            //queue.Enqueue(tree.root);
            //var values = tree.BfsRecursive(queue, new List<int>());

            var math = new MyMath();

            math.MyPow(23.4, -6);

            var values = tree.DFSInOrder();

            foreach (var num in values)
            {
                Debug.Write(num + " ");
            }


            //        9
            //   4        20
            // 1   6   15    170

            //DFS

            //left, data, right: data is the parent node
            //ldr
            //InOrder - 1,4,5,9,15,20,170
            //dlr
            //PreOrder - 9,4,1,6,20,15,170
            //lrd
            //PostOrder - 1,6,4,15,20,170,9
        }