브라이언 :
- 이 클래스에 포함 된 모든 코드가 아니라이없는 경우 충분히 내가 아니라 나머지를 추가합니다.
- ()에 추가하는 키를 이용하여 BST의 정확한 위치 값을 추가하는 것을 의미한다. 키가 이미 존재하는 경우에는 아무 것도 할 필요가 없습니다.
지정된 키가 트리에있는 경우) (포함은 True를 반환하도록되어
```public class Node { public Node left; public Node right; public int key; public String value; public void add ( int key, String value ) { if ( key.compareTo ( this.key ) < 0) { if ( left != null ) left.add ( key, value ) else left = new Node ( key, value ); } else if ( key.compareTo ( this.key ) > 0 ) { if ( right != null ) right.add ( key, value ); else right = new Node ( key, value); } else this.value = value; } public boolean contains ( int key ) { if ( this.key == ( key ) ) return value; if ( key.compareTo ( this.key ) < 0 ) return left == null ? null : left.contains ( key ); else return right == null ? null : right.contains ( key ); } }
제이슨 :
문제는 즉 int
원시적이며, 정수가하는 그러나 박스 변화를 int.compareTo을 사용할 수 있도록 그에 필적 구현하지 않습니다. 당신은 단순히 대신 INT의 정수를 사용, 또는 대안 Integer.compare (1, 2)을 사용하는 프리미티브의 사용량을 유지할 수 있습니다.
public static class Node {
public Node left;
public Node right;
public Integer key;
public String value;
public Node(Integer key, String value) {
this.key = key;
this.value = value;
}
public void add(Integer key, String value) {
if (key.compareTo(this.key) < 0) {
if (left != null)
left.add(key, value);
else
left = new Node(key, value);
} else if (key.compareTo(this.key) > 0) {
if (right != null)
right.add(key, value);
else
right = new Node(key, value);
} else
this.value = value;
}
public boolean contains(Integer key) {
if (this.key.intValue() == (key)) {
return true;
}
if (key.compareTo(this.key) < 0)
return left == null ? null : left.contains(key);
else
return right == null ? null : right.contains(key);
}
}