Moait
홈인기 피드모든 블로그모든 태그
홈인기 피드모든 블로그모든 태그
Non-recursively deleting a binary tree in constant space: Traversal with parent pointers 섬네일

Non-recursively deleting a binary tree in constant space: Traversal with parent pointers

Microsoft Developer faviconMicrosoft Developer·Backend·
Memory ManagementC Plus PlusBinary TreePointersTree Traversal
2025년 11월 05일3

AI 요약

이 글은 AI가 요약했어요. 정확한 내용은 꼭 원문을 확인해 주세요!

핵심 요약

Microsoft Developer가 부모 포인터를 활용한 이진 트리의 비재귀·상수 공간 삭제 알고리즘을 제시합니다. 인오더 순회를 차용한 흐름을 N-ary 포스트오더 방식으로 적용해, 왼쪽으로 깊이 내려가고 더 이상 왼쪽이 없으면 오른쪽으로 이동한 뒤 자식을 삭제하고 상위로 되돌아가며 남은 부분을 처리합니다.

구현 방법

  • Node 구조체: left, right, parent, Data d를 포함하는 C++ 스타일 구현
  • 왼쪽 하위가 있으면 계속 내려가고, 없으면 오른쪽으로 한 걸음 간 뒤 다시 왼쪽으로 탐색
  • 바닥에서 노드를 삭제하고 부모로 올라가며, 왼쪽 자식으로 왔는지에 따라 다음으로 오른쪽 자식을 진행하는지를 결정
  • NextSibling은 부모의 자식 위치를 이용해 "왼쪽이면 오른쪽이 다음"으로 합성
  • 핵심은 재귀 없이 포인터 관리로 트리를 순회하며 해제하는 흐름

주요 결과

  • 상수 공간으로 트리 전체 해제가 가능, 깊은 트리도 스택 없이 처리
  • 메모리 해제와 정리 과정의 안정성 확보

연관 피드

%가 높을수록 이 글과 비슷할 가능성이 높아요!
Non-recursively deleting a binary tree in constant space: Synthesizing the parent pointer 섬네일
93%

Non-recursively deleting a binary tree in constant space: Synthesizing the parent pointer

Microsoft Developer faviconMicrosoft Developer·2025년 11월 06일
Non-recursively deleting a binary tree in constant space: Restructuring the tree 섬네일
90%

Non-recursively deleting a binary tree in constant space: Restructuring the tree

Microsoft Developer faviconMicrosoft Developer·2025년 11월 07일
자바스크립트 v8 엔진의 가비지 컬렉션 동작 방식 섬네일
58%

자바스크립트 v8 엔진의 가비지 컬렉션 동작 방식

카카오엔터테인먼트 favicon카카오엔터테인먼트·2022년 05월 19일