java - 制作二叉搜索树

标签 java binary-tree binary-search

当我有一个包含 100 个元素的数组列表时,如 {3,2,6,7,...,99},我该如何创建 BST?

最佳答案

我相信TreeSet是二叉搜索树的实现。由于整数具有自然顺序,您可以简单地遍历整数数组并将它们全部添加到 TreeSet<Integer> 中。 .

另请注意,有一个方法 Arrays.binarySearch 在排序数组中进行二进制搜索。

int[] someInts = {3,2,6,7, /*...,*/ 99};

// use a TreeSet
TreeSet<Integer> ints = new TreeSet<Integer>();
for (int i : someInts)
    ints.add(i);

System.out.println(ints.contains(2)); // true      
System.out.println(ints.contains(5)); // false

// or sort the array and use Arrays.binarySearch
Arrays.sort(someInts);
System.out.println(Arrays.binarySearch(someInts, 2) >= 0); // true
System.out.println(Arrays.binarySearch(someInts, 5) >= 0); // false

关于java - 制作二叉搜索树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4430809/

相关文章:

java - 这似乎是从一个接口(interface)创建一个对象;它是如何工作的?

java - SWT异常 : Widget is disposed

java - 是否可以在少于 O(n log n) 的时间内比较两个二叉树?

c - 是否可以在不使用递归或堆栈/队列的情况下获得二叉树的高度?

java - 为什么 Collections.binarySearch 给出错误的结果?

java - 为二进制搜索的复合对象编写比较器

使用byte []在oracle中的java用户定义函数

java - Android:将分秒转换为毫秒

java - Java 二叉树实现中链接对象的异常

c++ - binary_search 总是返回真 C++