앞서 구현한 이진트리에는 소멸관련 함수가 없다.
우린 소멸을 위해 순회를 배웠으니 !
배운 내용들을 토대로 순회를 통한 동적으로 할당된 노드들을 소멸시키고 종료해보자.
binaryTree.c 파일에
void DeleteTree(BTreeNode * bt)
{
if(bt == NULL)
return;
DeleteTree(bt->left);
DeleteTree(bt->right);
printf("del tree data: %d\n",bt->data);
free(bt);
}
이 코드를 추가해주면된다.
그 이후 다른파일에도 참고 해주면된다.
소멸시키는 함수를 자세히 보자.
후위 순회구조이다.
왜그런가?
바로 루트 노드가 마지막에 소멸되어야 하기때문에 반드시 후위 순회의 과정을 통해서 소멸을 진행해야한다 !
이를 실행해보자 !
성공적으로 후위 노드들을 소멸시킴을 볼 수 있다 !!!
이렇듯 간단하다!!