制作二叉搜索树

use*_*221 4 java binary-tree binary-search

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

aio*_*obe 8

我相信TreeSet是二叉搜索树的实现.由于整数具有自然排序,因此您可以简单地遍历整数数组并将它们全部添加到a 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
Run Code Online (Sandbox Code Playgroud)