메신저에서 BST에 항목이 있는지 확인할 수있는 방법을 만들려고합니다. 이것은 내가 지금까지 무엇을 가지고 :비교기와 BST
// Data fields
private BSTNode root;
private int count = 0;
private Comparator<E> comp; // default comparator
/** Private class for the nodes.
* Has public fields so methods in BSTSet can access fields directly.
*/
private class BSTNode {
// Data fields
public E value;
public BSTNode left = null;
public BSTNode right = null;
// Constructor
public BSTNode(E v) {
value = v;
}
}
public BSTSet() {
comp = new ComparableComparator(); // Declared below
}
public BSTSet(Comparator <E> c) {
comp = c;
}
내 질문에 내가 그것을 작동하도록 내는 방법을 포함 해결 할 방법은 다음과 같습니다
public boolean contains(Object item) {
// YOUR CODE HERE
//changes item to E so it can be used in the comparator
E value1 = (E) item;
if (root.value.equals(item)){
return true;
}
comp.compare(value1,root.value);
if(value1<root.value){
if (left == null)
return null;
else
return left.contains(item);
}
else if(item >= value){
if (right == null)
return null;
else
return right.contains(item);
}
}
이러한 내 필드입니다. 지금까지는 comp.compare (value1.root.value) 아래의 행에 도달하고 '<'을 E 유형의 두 요소에서 사용할 수 없다고 말합니다. 이것을 어떻게 수정하여 비교기를 계속 실행할 수 있습니까?