Java에서 트리 및 노드 클래스와 SearchTree 클래스가 제공되는 바이너리 검색 트리 숙제를 통해 검색 및 삽입 메서드를 완성했습니다. 검색은 검색된 키에 해당하는 노드 값을 리턴합니다.자바 이진 검색 트리 - 삽입 방법이 잘못되었습니다.
Here은 Tree 클래스이고 here은 Node 클래스입니다. 내 검색 및 삽입 방법은 다음과 같습니다.
키가 0이되고 값 2가 Tree [Node [0,1, null, null]]로 삽입되면 테스트 결과가 Tree [Node [0,1, null, null]이됩니다. 올바른 Tree [Node [0,2, null, null]]보다. 나는 여기서 무엇을 이해하지 못 하겠는가?
public static Object search(Tree tree, int key) {
Node x = tree.getRoot();
while (x != null) {
if (key == x.getKey()) {
return x.getValue();
}
if (key < x.getKey()) {
x = x.getLeft();
} else {
x = x.getRight();
}
}
return null;
}
public static void insert(Tree tree, int key, Object value) {
if (tree.getRoot() == null) {
tree.setRoot(new Node(key, value));
}
Node juuri = tree.getRoot();
while (juuri != null) {
if (key == juuri.getKey()) {
return;
} else if (key < juuri.getKey()) {
if (juuri.getLeft() == null) {
juuri.setLeft(new Node(key, value));
return;
} else {
juuri = juuri.getLeft();
}
} else {
if (juuri.getRight() == null) {
juuri.setRight(new Node(key, value));
return;
} else {
juuri = juuri.getRight();
}
}
}
}
아, 실종 된 바로 그 것. 감사합니다, 크게 감사드립니다. –