[자료구조] 순회를 통한 트리 데이터의 소멸 8-3 문제

서희찬·2021년 4월 8일
1
post-thumbnail

앞서 구현한 이진트리에는 소멸관련 함수가 없다.

우린 소멸을 위해 순회를 배웠으니 !
배운 내용들을 토대로 순회를 통한 동적으로 할당된 노드들을 소멸시키고 종료해보자.

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);
}

이 코드를 추가해주면된다.
그 이후 다른파일에도 참고 해주면된다.

소멸시키는 함수를 자세히 보자.
후위 순회구조이다.
왜그런가?
바로 루트 노드가 마지막에 소멸되어야 하기때문에 반드시 후위 순회의 과정을 통해서 소멸을 진행해야한다 !

이를 실행해보자 !

성공적으로 후위 노드들을 소멸시킴을 볼 수 있다 !!!

이렇듯 간단하다!!

profile
부족한 실력을 엉덩이 힘으로 채워나가는 개발자 서희찬입니다 :)

0개의 댓글