-
카테고리
-
세부 분야
알고리즘 · 자료구조
-
해결 여부
미해결
addNode 함수 구현부분
22.05.15 20:11 작성 조회수 131
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인 상태로 올 수도 있는 상황이라 생각하는데 잘못된 생각인지 궁금합니다!
답변을 작성해보세요.
0
lectopia1
지식공유자2022.05.17
안녕하세요?
문의하신 질문 답변드립니다.
while(cur!=NULL){ <<=== 여기 조건을 보시면 cur !=NULL 이여야지만 아래 코드에서 parent = cur;를 수행하지요.
parent = cur;
if(node - > data < cur ->data) ~~~~~
}
즉, parent가 NULL일수는 없다는 얘기랍니다. (cur는 NULL일 수 있고요)
그리고 자식노드는 parent에 왼쪽 또는 오른쪽에 붙이므로 설명드린 코드는 문제가 없답니다.
그리고 자식노드는 parent에 왼쪽 또는 오른쪽에 붙이므로 설명드린 코드는 문제가 없답니다.
그림을 그리면서 코드를 따라가 보시면 훨씬더 이해가 잘 되실거예요~^^
답변 1