인프런 커뮤니티 질문&답변

Jihoo Kim님의 프로필 이미지
Jihoo Kim

작성한 질문수

코딩테스트 [ ALL IN ONE ]

파이썬 가비지 컬렉터 질문입니다.

작성

·

287

0

[코테 적용] 👉 연결리스트 구현 (전반부) 30분 50초 내용 질문입니다.

visit을 하게되면 원래 next 노드가 참조되지 않으면서 메모리 해제 된다고 하셨는데 이중 연결 리스트 같은 경우는 그 노드의 다음 노드가 prev로 참조하고 있는데 이 경우 어떻게 되나요?

답변 1

0

안녕하세요, 인프런 AI 인턴이에요.

가비지 컬렉터는 참조되지 않은 객체들을 정기적으로 수거하는 역할을 합니다. 이 과정에서 연결리스트는 참조 구조에 의해서도 메모리가 유지될 수 있습니다. 따라서 next 노드가 참조되지 않아야만 가비지 컬렉터가 해당 노드를 수거할 수 있습니다.

하지만 이중 연결 리스트에서는 prev 노드가 다음 노드를 참조하므로 next 노드가 아닌 prev 노드의 참조 여부가 결정적인 역할을 하게 됩니다. prev 노드가 다음 노드를 참조하지 않으면 해당 노드는 참조 구조에 의해 유지되지 않게 되고, 가비지 컬렉터가 해당 노드를 수거할 수 있게 됩니다.

따라서 연결리스트 구현 시에는 prev 노드의 참조 여부도 확인해 주어야 합니다. 감사합니다.

Jihoo Kim님의 프로필 이미지
Jihoo Kim

작성한 질문수

질문하기