"이진트리 구현" 질문이요!
별하
2023.04.01
질문 제목 : 이진트리 구현 질문이요!이진트리내용 질문입니다;;;;질문 내용 :이진트리 구현에서 트리 노드 생성하는 함수 있잖아요.
근데 왜 왜 굳이 이진 트리 노드를 동적으로 생성할까요?
동적으로 할당하는 이유가 있을 거 같은데... 감이 안잡히네요.
그냥 포인트로 바로 넘기는게 편해서 그런가요?struct tree
{
int data;
tree *left, *right;
}
//이렇게 한 tree구조체가 잇으면 밑에 메인함수에서int main()
{
tree a //-이렇게 바로 생성해서 사용하면 되지 굳이
tree *ptr = maketree(); //요기서 maketree가 tree를 동적생성하는 함수인데 왜 이걸 써서 동적할당을 하는지......뭔가 찝찝하네요. 동적으로 생성하니 트리 해제하면 밑에 있는 자식노드들 전부 해제 해줘야 하는
불편함도 있는데, 아, 설마;; 정적으로 잡은건 해제가 안되니까 그런건가요? (어떤이유에서??)
아니면 설마 그냥 클래스에 생성자처럼 left하고 right값 null로 초기화 하기 위해선가요? (이렇게 어이 없지는 않을 듯한데)논리적으로 알기 쉽게 설명해주실 분 없나요ㅠㅠ
-
시아
첫번째 작성자 입니다. 두번째 분이 더 핵심을 알려주셨네요. c언어를 거의 끝났다고 생각했다가도
여기에서 질문들 풀면서 배웠던거 다시 짚어가다보니 더 확실하게 각인되는거 같아서 매우 좋네요 ㅋ