C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[50771] Re:트리 질문드려요
function [] 895 읽음    2007-10-08 17:22
윤영광 님이 쓰신 글 :
: 트리 공부하다가 궁금한 부분이 생겼습니다...
: 만약 루트의 값보다 작으면 왼쪽으로 보내지는 부분입니다.
: 그런데 다행이 왼쪽이 비어있다면 곧바로 아래와 같이 추가하는데,
: 이미 채워져 있다면  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가 루트가 되는거에요

+ -

관련 글 리스트
50751 트리 질문드려요 윤영광 869 2007/10/06
50771     Re:트리 질문드려요 function 895 2007/10/08
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.