delete this에 대한 질문...
글쓴이: Astrid / 작성시간: 화, 2008/04/01 - 3:37오후
트리구조를 만드는 도중에...
매니저와 같은 것을 두지 않고 노드 별로 Insert, Delete 가능하게 만들고 있습니다.
사용법은
TreeNode* root = new TreeNode(값);
root.Insert(값);
...
root = root.Search(값).Delete(); // 반환은 Root Node
...
root.DeleteAll();
대충 이런 형태로 사용가능하게 마들고 있습니다.
Search()함수는 TreeNode*를 반환하게 되구요.
TreeNode* TreeNode::Delete()
{
...
temp = FindRoot();
delete this;
return temp;
}
Delete 함수 내부는 이렇게 사용하고 있는데..
TreeNode에 대한 인스턴스가 하나도 없게되면 프로그램이 터집니다. ㄱ-
먼가 오류가 있는가요?
Forums:
root =
root = root.Search(값).Delete(); // 반환은 Root Node
이 라인이 실행되고 나면 root는 delete되었는데, 다시 root.DeleteAll ()로 root를 참조하여 delete하려니 문제겠죠.
ㄷㄷ;
그냥 프로그램을 허술하게 짜서 잘못된 참조때문에 오류나는것이었네요...
AVL 트리 만들고 있었는데..
버그 다 잡고 해결하였습니다^^;
댓글 달기