如何使用Java中的TreeSet类来查找红黑树的高度?
我目前使用Java.util.TreeSet类在Java中创建了一个红黑。我需要能够找到红黑树的高度,但我不确定如何使用Java TreeSet类。我已经看到了递归的一些用法,但我不确定如何使用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>>
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。我会和他核实一下,看看他要我们做什么。