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 }