그리고 return만 적기 보다는 그냥 아무것도 안적어도 되지 않나요?? 왜 굳이 return 만 적는 행위를 하는 건가요? 또, 이건 return None 과는 다른건가요?
+0
2022년 9월 2일
self.root is None 이 트리가 비어있을 때라는 뜻인 건 알겠는데, 이게 왜 while 반복문에서 빠져나가는 경우로 설정이 될수 있는지 이해가 가지 않습니다. 어차피 while은 트리가 비어있지 않을 때의 경우로 만든 코드블락인데.. 이게 반복을 거쳐서 self.root is None의 경우가 만들어 질수가 있나요? (이 경우가 충족이되어야 이 while.반복문이 terminate되겠죠..ㅜ)
+0
2022년 9월 2일
이 부분들을 이해하고 모두 조합해보면 얻을 게 많아보여서 그런데 상세히 답변해 주신다면 정말 감사하겠습니다!
+0
2022년 9월 2일
current는 현재 위치의 Node를 의미하기 때문에 붙여본 이름입니다. Node 인스턴스로부터 left_child 또는 right_child로 이동하는데 현재 어느 Node 인스턴스인지 표현하기 위해 temp보단 current가 더 좋지 않은가 싶네요.
+0
2022년 9월 2일
return만 적는 것과 return None을 적는 것은 함수 밖에서 반환받는 값으로는 동일하게 None 값을 반환받습니다.
+0
2022년 9월 2일
while temp is not None: 이 코드를 self.root is None이라고 말씀하신걸까요?
+0
2022년 9월 2일
해당 코드만 보면 안됩니다. temp는 self.root를 기준으로 시작해서 temp = temp.left_child가 될 수도 있고 temp = temp.right_child가 될 수도 있습니다. 그래서 temp는 반복문을 돌면서 계속 변하는 변수입니다.
+0
2022년 9월 4일
"return만 적는 것과 return None을 적는 것은 함수 밖에서 반환받는 값으로는 동일하게 None 값을 반환받습니다." 음.. 제가 답변을 이해를 했다면 혹시 return 과 return None은 같다는 뜻 인가요? 사실 제 질문은 아예 return 키워드를 안 적는 경우는 안되는건가요? 입니다. (마치 맨 아랫줄 else: temp = temp.left_child 블락 처럼요) 혹시 리턴을 해야만 저 반복문을 빠져나올 수있는 건가요?
+0
2022년 9월 4일
음.. 일단 temp is None이 어떤 경우나 상황을 일컫는 건지 모르겠습니다. 가리키는 노드가 leaf가 되는 상황을 말하는 걸까요? 이 질문을 드리는 이유가 while self.root is not None: 이라면 self.root is None 일 경우가 일정한 반복을 통해 만족이 된다는건데, 그게 가능한 시나리오인가요? 제 생각으로는 무한루프..여야 할 것 같아요
+0
2022년 9월 4일
음.. 제가 답변을 이해를 했다면 혹시 return 과 return None은 같다는 뜻 인가요? 네 같습니다. python은 기본적으로 return 값을 아무것도 반환하지 않으면 None을 반환하고 있습니다.
+0
2022년 9월 4일
return을 안적는다면 계속 반복하면서 insert해야 할 위치를 찾지 못하고 끝날거에요.
+0
2022년 9월 4일
else: 밑엔 return을 적지 않는 이유는 그렇다면 계속 반복을 하기 위함인게 맞을까요?
+0
2022년 9월 4일
return은 이전에 함수를 즉시 종료할때 사용된다고 하셨는데, 이번 코드는 반복문입니다. 그렇다면 return은 함수뿐 아니라 반복문을 종료할때도 쓰이는 건가요?
+0
2022년 9월 5일
네 else에선 return을 적지 않은 이유는 계속 반복하기 위함입니다. temp 값을 다른 Node인스턴스로 수정하는 code가 else 아래 들어가 있잖아요?
+0
2022년 9월 5일
return은 반복문을 종료하는 게 아니라 그냥 함수를 종료합니다. 반복문 안에서 return을 하더라도 함수가 종료됩니다. 반복문을 종료하는 키워드는 break입니다.
+0
2022년 9월 5일
return 은 함수가 종료되는 건데 어떻게 이게 while문을 빠져나오게 하는 건가요?? 아예 insert 함수를 빠져나오게 해서 그렇게 되는건가요?
+0
2022년 9월 6일
그리고 저긴 함수가 없지 않나요..? if 조건문만 있는 것 같습니다
+0
2022년 9월 6일
네 함수를 빠져나간다는 것은 반복문과는 무관합니다. 조금 더 격하게 말한다면 return은 반복문 따위를 멈추기 위한 키워드가 아닙니다. 함수를 끝내기 위한 키워드면서 어떤 값을 반환하기 위한 키워드입니다. 그래서 return은 위의 insert 함수 자체를 끝내버립니다.
댓글 20개