Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Java中的TreeSet类来查找红黑树的高度?_Java_Height_Red Black Tree - Fatal编程技术网

如何使用Java中的TreeSet类来查找红黑树的高度?

如何使用Java中的TreeSet类来查找红黑树的高度?,java,height,red-black-tree,Java,Height,Red Black Tree,我目前使用Java.util.TreeSet类在Java中创建了一个红黑。我需要能够找到红黑树的高度,但我不确定如何使用Java TreeSet类。我已经看到了递归的一些用法,但我不确定如何使用TreeSet类来实现这一点 以下是我目前的代码: import java.util.TreeSet; import java.util.Random; public class BinarySearchTreeTest<E extends Comparable<Integer>>

我目前使用Java.util.TreeSet类在Java中创建了一个红黑。我需要能够找到红黑树的高度,但我不确定如何使用Java TreeSet类。我已经看到了递归的一些用法,但我不确定如何使用TreeSet类来实现这一点

以下是我目前的代码:

import java.util.TreeSet;
import java.util.Random;

public class BinarySearchTreeTest<E extends Comparable<Integer>>{

static Random randomGenerator = new Random();

public static int randomEven(){
    int randomEven = randomGenerator.nextInt(50000000);

    randomEven = randomEven * 2;

    return randomEven;
}

public static int randomOdd(){
    int randomOdd = randomGenerator.nextInt(49999999);

    randomOdd = randomOdd * 2 + 1;

    return randomOdd;
    }

public static void main(String[] args) {
    TreeSet<Item> RedBlackTree = new TreeSet<Item>();

    int[] randomArray = new int[100000];
    int inserts = 0;
    while(inserts != randomArray.length-1) {
        int randomInt = randomEven();
        boolean found = false;

        for(int j = 0; j < randomArray.length; j++) {
            if (randomInt == randomArray[j]) {
                System.out.println("Duplicate Found: " + randomInt + " at " + inserts);
                found = true;
                break;
            }
        }

        if(!found) {
            randomArray[inserts] = randomInt;
            ++inserts;
        }
    }

    //Adds all 100000 values to the Red Black Tree, and stores the number of comparisons
    for (int i = 0; i < randomArray.length; i++){
        Item randomItem = new Item(randomArray[i]);
        RedBlackTree.add(randomItem);
    }
    long RedBlackTreeComparison = Item.getCompCount();
    Item.resetCompCount();

    System.out.println("Red Black Tree:");
    //String treeOutput = RedBlackTree.toString();
    //System.out.println(treeOutput);
    System.out.print("\n");
    System.out.println("Height: N/A " + "     " + "Number of Comparisons: " + RedBlackTreeComparison);
    System.out.println("Contains " + doesContain + " : " + RedBlackTree.contains(doesContain) + "     " + "Number of Comparisons: " + Item.getCompCount());
    System.out.print("\n");
    Item.resetCompCount();

}
import java.util.TreeSet;
导入java.util.Random;
公共类二进制搜索树测试{
静态随机生成器=新随机();
公共静态int-random偶数(){
int random偶数=randomGenerator.nextInt(50000000);
随机偶数=随机偶数*2;
返回偶数;
}
公共静态int-randomOdd(){
int randomOdd=randomGenerator.nextInt(49999999);
随机奇数=随机奇数*2+1;
返回奇数;
}
公共静态void main(字符串[]args){
TreeSet RedBlackTree=新树集();
int[]随机数组=新int[100000];
int-inserts=0;
while(inserts!=randomArray.length-1){
int randomInt=random偶数();
布尔值=false;
对于(int j=0;j

}

你可能不会在这方面取得成功:你不可能知道,提供这样的信息不是界面的一部分。还有,你为什么需要它?您可以只计算
Math.log(yourTreeSet.size())/Math.log(2)我大学作业的一部分涉及红黑树和二进制搜索树。我们被要求创建每棵树中的一棵,用相同的值填充它们,然后根据所需的比较次数制作一些图表,以找到其中一个值与每棵树的高度。是的。。。这可能意味着创建自己的红黑树实现。碰巧
TreeSet
是一棵红黑树,但我非常怀疑这是你老师的想法。他实际上特别要求我们使用java.util.TreeSet。我会和他核实一下,看看他希望我们做什么。你可能不会成功:你不可能知道,提供这样的信息不是界面的一部分。还有,你为什么需要它?您可以只计算
Math.log(yourTreeSet.size())/Math.log(2)我大学作业的一部分涉及红黑树和二进制搜索树。我们被要求创建每棵树中的一棵,用相同的值填充它们,然后根据所需的比较次数制作一些图表,以找到其中一个值与每棵树的高度。是的。。。这可能意味着创建自己的红黑树实现。碰巧
TreeSet
是一棵红黑树,但我非常怀疑这是你老师的想法。他实际上特别要求我们使用java.util.TreeSet。我会和他核实一下,看看他希望我们做什么。你可能不会成功:你不可能知道,提供这样的信息不是界面的一部分。还有,你为什么需要它?您可以只计算
Math.log(yourTreeSet.size())/Math.log(2)我大学作业的一部分涉及红黑树和二进制搜索树。我们被要求创建每棵树中的一棵,用相同的值填充它们,然后根据所需的比较次数制作一些图表,以找到其中一个值与每棵树的高度。是的。。。这可能意味着创建自己的红黑树实现。碰巧
TreeSet
是一棵红黑树,但我非常怀疑这是你老师的想法。他实际上特别要求我们使用java.util.TreeSet。我会和他核实一下,看看他要我们做什么。