public void Run() { // Create balanced tree int[] array = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; var root = TreeNode.CreateMinimalBst(array); Console.WriteLine("Root? " + root.Data); Console.WriteLine("Is balanced? " + IsBalanced(root)); Console.WriteLine("Improved Is balanced? " + IsBalancedImproved(root)); // Could be balanced, actually, but it's very unlikely... var unbalanced = new TreeNode(10); for (var i = 0; i < 10; i++) { unbalanced.InsertInOrder(AssortedMethods.RandomIntInRange(0, 100)); } Console.WriteLine("Root? " + unbalanced.Data); Console.WriteLine("Is balanced? " + IsBalanced(unbalanced)); Console.WriteLine("Improved Is balanced? " + IsBalancedImproved(unbalanced)); }
public static TreeNode RandomBst(int N, int min, int max) { int d = RandomIntInRange(min, max); TreeNode root = new TreeNode(d); for (int i = 1; i < N; i++) { root.InsertInOrder(RandomIntInRange(min, max)); } return root; }