240쪽 BST_SearchNode(....)에서 질문이있습니다.
2010-11-09
|
by metoo13
2112
BSTNode* BST_SearchNode(BSTNode* Tree, ElementType Target)
{
if(Tree==NULL)
return NULL;
if(Tree->Data
return BST_SearchNode(Tree->Left, Target);
else if(Tree->Data> Target)
return BST_SearchNode(Tree->Right, Target);
else
return Tree;
}
부분에서
if(Tree->Data
return BST_SearchNode(Tree->Left, Target); <-이부분하고
else if(Tree->Data> Target)
return BST_SearchNode(Tree->Right, Target);<- 이부분이..
바뀌어야되지 않을까요???
if(Tree->Data
값의 비교가 이루어 줘야되는데 , if문에의해 노드의 왼쪽으로 이동하게됩니다.
위의 코드로 실행을하면.. 찾고자하는값을 찾을수가 없게되는것 같습니다.
위의 코드와 똑같이 246쪽에 032줄부터 043줄까지 구현되어있는데요...
if(Tree->Data
return BST_SearchNode(Tree->Right, Target);
else if(Tree->Data> Target)
return BST_SearchNode(Tree->Left, Target);
이렇게 바뀌면..값도 찾아지고,, 실행도 잘됩니다.
만약 아니라면..부연설명 부탁드립니다 (__)~