|
윤영광 님이 쓰신 글 :
: 트리에서 하나의 노드 삭제후 자식노드들중 하나를 가져와 채우는 부분 입니다.
: 언어는 파스칼이지만, 금발 알아 볼 수 있을 껍니다.
: 궁금한 것은..
: mygp = exit 부분인데..
:
: mygp 가 이미 dispose 라는 함수로 메모리 해제 되었는데..
: 그 아래.. exist 를 대입해 주는 이유는 무슨 영문인가요?
:
:
: begin
: new(temp_2);
: temp_2 := mygp;
: mygp := mygp^.right; // 오른쪽을 올린다.
: end
: else // 왼쪽 노드에 주소값이 있다면
: begin
: new(exist); // 새로운 노드 생성
: exist := subtree(mygp^.left); // 대체노드를 대입
: exist^.left := mygp^.left; // 이전 노드의 포인팅 정보 전달
: exist^.right := mygp^.right;
: dispose(mygp); // 실제적으로 삭제 된다
: mygp := exist;
: end;
흠.. mygp 를 해제한후..
exist 의 포인터를 옮기는 거 같은데요.
그럼 기존 자료는 없어지고 exist와 메모리 번지를 공유? 하게 되는거 같습니다.
new 와 delete는 포인터를 잡아주고 날리는 기능이 아니라.
메모리 영역 할당 영역 삭제를 의미하기때문에 delete를 했다고해서 그 포인터변수가 없어지는건 아니거든요.
|