0
이진 검색을 원하지만 프로그램이 무한 루프를 입력하고 있습니다. 프로그램 인쇄 :무한 루프를 입력하는 이진 검색
값 = 10
값 = 10
값 = 나는이 문제를 해결하려면 어떻게 10
...
?
public static void search(Node root, int data){
while(root.data != data){
if(data < root.data){
search(root.left, data);
}
else if(data > root.data){
search(root.right, data);
}
}
System.out.println("Value = " + root.data);
}
public static void main(String[] args) {
Node root = null;
root = add(root, 15);
root = add(root, 3);
root = add(root, 10);
root = add(root, 20);
root = add(root, 30);
search(root, 10);
}
노드 클래스 :
class Node {
Node left;
int data;
Node right;
Node(int data) {
left = null;
this.data = data;
right = null;
}
}
Node 클래스와 추가 기능을 게시 할 수 있습니까? –
질문을 편집하고 [mcve] (http://stackoverflow.com/help/mcve)를 추가하십시오. 일어날 것으로 예상되는 것과 실제로 발생한 일을 설명하십시오. 현재, 재귀 적 반복 솔루션을 동시에 사용하려고하는 것으로 추측 할 수 있습니다. 재귀의 경우 파손 상태가 누락되었습니다. 반복 솔루션의 경우 while 조건이 false가되도록 일부 변수를 다시 할당해야합니다. –
클래스 노드 { 노드가 왼쪽; int 데이터; 노드 오른쪽; 노드 (int 데이터) { left = null; this.data = data; right = null; } } – myvalley