이합니다 (BinaryTreeNode 클래스 I 완료하는 데 필요한 기능이이진 검색 트리 회원 기능
class BinaryTreeNode {
public:
Data * nodeData;
BinaryTreeNode * left;
BinaryTreeNode * right;
에게 변화 할 수있다 이 정의)
bool BinaryTreeNode::member(Data * data) const {
나는 = currentnode처럼이를 변수를 생성 한 다음, 아래로 진행 currentnode를 업데이트하는 나무의 측면 확인하기 위해 while 루프를 사용하려고했지만, 나는 수없는 것 그것을 작동 시키려면. 그래서 재귀로 수행해야 할 것 같아요? 나는 그것을 시도했지만 프로그램이 잠긴다.
누구든지 올바른 방향으로 나를 가리킬 수 있다면 매우 유용 할 것입니다.
은 여기 내 많은 시도 중 하나 (이 시도 재귀)입니다 :
그 함수의 최초의 호출에bool BinaryTreeNode::member(Data * data) const {
if(nodeData == NULL) {
return false;
}
else if (nodeData->compareTo(data) == 0) {
return true;
}
while(this != NULL) {
if(nodeData->compareTo(data) == 0) {
return true;
}
else if(nodeData->compareTo(data) == 1) {
return left->member(data);
}
else if(nodeData->compareTo(data) == -1) {
return right->member(data);
}
}
return false;
}
우리가 디버그하는 데 도움이되도록 시도한 코드를 게시 할 수 있습니까? – Pradheep
시도가 모두 성공할 수 있습니다. 그러나 버그가 어디에 있는지 분명히 말할 수는 없습니다. –
내 재귀 시도로 작전을 편집했습니다 –