이진트리에서 루트가 자식노드가 없을시엔 삭제하면 안되나요?
안녕나야
2023.04.01
제목 그대로 인데요.
이진트리의 모습을 대략적으로 그려보자면
루트 ------100
80 120
60 90 115 122
대략 이런 모습이자나요?
이 상태에서 다 자식노드를 다 삭제를 해서 루트 ------100 이것만 남아있다면
루트노드를 삭제해선 안되나요?
반대로 루트노드에 자식이 있을땐 후계자가 있으니 삭제해도 되구요?
자료구조 책에 제가질문하는 부분이 나와있지 않아서 질문드립니다.
정리하자면 루트에 자식노드가 있을땐 루트를 삭제해도 되지만 루트에 자식노드가 없을땐 루트를 삭제하면 안되나요?
-
다은
감사합니다.
-
전갈자리
지워도 상관은 없습니다.
확실하게 지우고, 지우고 난 뒤에 처리(null로 지정)를 제대로 한다면 아무 문제 없습니다. -
가림새
^^; 그냥 제 생각을 말씀드리자면, 트리구조에서 루트노드가 특별한 값(노드의 최대값 등등)을
가지고 있다면, 절대로 지워서는 안될 거 같습니다. 반대로 특별한 값을 가지고 있지 않다면,
자식노드에 노드값을 최상위 값으로 변경해줘야 겠죠. 단 루트노드에 다른 노드가 없을 때 겠죠.
어차피 프로그래밍 하는 사람 마음 , 또는 필요에 따라 결정되는 거 아닐까요?
수다님의 글을 읽으면서 연결리스트 이해해가고 있습니다. 고맙습니다. (ㅡ.ㅡ)(_._)