메뉴 바로가기 검색 및 카테고리 바로가기

한빛미디어

뇌를 자극하는 알고리즘

뇌를 자극하는 알고리즘 질의응답 게시판입니다.

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);

이렇게 바뀌면..값도 찾아지고,, 실행도 잘됩니다.

만약 아니라면..부연설명 부탁드립니다 (__)~
댓글 입력