inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

정혜경 판타스틱 자료구조 in C

28강. BST 구현 (개념과 초기화, add)

addNode 함수 구현부분

245

고재찬

작성한 질문수 7

0

addNode 함수 구현 부분 관련 질문드립니다.

19분경 쯤 보시면 나와있습니다

root가 있을때 추가될 부모노드를 검색하는 부분에서 

else{

cur = tp -> root;

while(cur!=NULL){

parent = cur;

if(node - > data < cur ->data) ~~~~~

}

if(node->data < parent -> data){

parent -> left = node;

}

~~

이런식으로 진행해 나가잖아요 node를 parent 함수의 오른쪽이나 왼쪽에 붙여야 하는데 node 데이터를 결정하는 if함수 입장에선 parent = cur; 이라고 확정 지을 수 없는 상황 아닌가요?? 혹시나 cur == NULL인 상태로 올 수도 있는 상황이라 생각하는데 잘못된 생각인지 궁금합니다!

c

답변 1

0

lectopia1

안녕하세요?
문의하신 질문 답변드립니다.
 
while(cur!=NULL){  <<===  여기 조건을 보시면 cur !=NULL 이여야지만 아래 코드에서 parent = cur;를 수행하지요. 

parent = cur;

if(node - > data < cur ->data) ~~~~~

}

즉, parent가 NULL일수는 없다는 얘기랍니다. (cur는 NULL일 수 있고요)
그리고 자식노드는 parent에 왼쪽 또는 오른쪽에 붙이므로 설명드린 코드는 문제가 없답니다. 
그림을 그리면서 코드를 따라가 보시면 훨씬더 이해가 잘 되실거예요~^^

안녕하세요. 계속 프로젝트를 해야지 하다가 결제하고 환경 설정 중입니다.

0

9

1

Export template 안됨

1

19

2

scanf("%d\n") 의미

0

20

1

필기자료 사라졌나요?(실기 일주일만에 안돼서 재도전-_-)

0

36

2

26년 1회 실기 해설 강의

0

50

2

주소 연산자(&) 간접 지정자(*) 반대 개념

0

33

1

53번 4-1 자료 오류 있는 것 같습니다.

0

68

2

7번문제

0

57

2

C언어 변형문제 9번문제 Pdf 수정요청

0

45

2

메서드 오버드라드

0

45

2

실수

0

45

1

공부 우선순위 우선강의 알려주세요

0

85

1

addLast질문

0

92

1

txt파일이 12강 수업자료에 없습니다!

0

267

1

음...

0

408

1

fileopen하는 txt파일을 어디서 다운받을 수 있나요?

0

436

1

교재 및 실습파일

0

386

0

17강 알고리즘 문제풀기(Editor)에서 질문있습니다.

0

363

1

delete 코드에서 질문이 2개 있습니다!

0

179

0

DeleteHash함수와 destroyHash함수에 대해서 질문이 있습니다!

0

151

0

reHeapUp while문

0

273

1

bst 강의 중 간단한 질문!

0

207

0

BST구현 addNode 함수관련 질문

0

258

1

hash table code첨부 문의

0

237

1