|
윤영광 님이 쓰신 글 :
: 트리 공부하다가 궁금한 부분이 생겼습니다...
: 만약 루트의 값보다 작으면 왼쪽으로 보내지는 부분입니다.
: 그런데 다행이 왼쪽이 비어있다면 곧바로 아래와 같이 추가하는데,
: 이미 채워져 있다면 pt = pt->Left; 이던데...
:
: 이게 정확히 어떤 의미이죠?
:
:
: if( pt->data > data ) //루트의 데어터보다 작으면 왼쪽으로 보낸다.
: {
: if( pt->Left == NULL) //루트 왼쪽 비어있으면
: {
: temp = malloc( sizeof( struct Node) );
: temp->data = data; temp에 새로운데이터 채우고
: pt->Left = temp; 그녀석을 왼쪽 심볼로 삼는다.
: temp->Left = NULL; temp의 왼쪽 뿌리 내리고
: temp->Right = NULL; temp의 오른쪽 뿌리도 내리고
: return;
: }
: else
: { pt = pt->Left; }
:
: }
pt의 포인터를 pt->left로 한다는 것이져.. 즉 pt->left에서 다시 data값을 비교해서 왼쪽으로 가야 할지 오른쪽으로 가야 할지 결정하기 위해서는 pt를 pt->left로 옮겨야져~ 즉 pt->left가 루트가 되는거에요
|