이진 트리의 전위 순회 및 레벨 순회 구현

이진 트리는 다양한 방식으로 저장될 수 있으며, 대표적인 저장 방식은 다음과 같습니다. 연결 리스트 기반 저장: 각 노드가 자식 노드를 가리키는 포인터를 포함하는 방식입니다. 배열 기반 저장: 루트 노드를 인덱스 0에 저장하고, 인덱스 i 노드의 왼쪽 자식은 2*i + 1, 오른쪽 자식은 2*i + 2에 저장하는 방식입니다. 이 방식은 특정 상황에서 효율적일 수 있으나, 일 ...

7월 30일 06:48에 게시됨

힙(Heap) 자료구조

목차 기초 지식 이진 트리 포화 이진 트리 완전 이진 트리 정의 인터페이스 (최소 힘 예시) 노드 삽입 - push 노드 삭제 - pop 힙 구축 - make_heap 힙 정렬 - heap_sort 요약 1. 기초 지식 이진 트리: n개의 노드로 구성된 트리 형태의 자료 구조로, 각 노드는 최대 두 개의 자식 노드를 가질 수 있습니다. 포화 이진 트리: 각 레벨의 노드 수가 최대로 채워져 ...

7월 19일 20:28에 게시됨

이진 트리 재귀 완전 정복: 직관에서 원리 이해로

서론: 재귀에 대한 솔직한 고백 재귀를 코딩할 때 종종 이런 경험이 있다. 코드는 작동하지만, "왜 이게 맞는지"는 설명하기 어렵다. 예를 들어: 왜 트리를 해제할 때 후위 순회를 써야 할까? 어떤 문제에서는 논리합(||)을 쓰고, 어떤 문제에서는 논리곱(&&)을 쓸까? 함수를 분리해서 작성해야 하는 경우는 언제일까? 이 글은 ...

7월 10일 05:14에 게시됨

이진 트리 완전 정복: 순회, 판별, 고급 알고리즘

이 문서에서는 이진 트리의 핵심 개념과 다양한 문제 해결 기법을 심층적으로 다룹니다. 노드 구조 정의부터 재귀/비재귀 순회, 그리고 여러 트리 유형 판별 알고리즘과 고급 주제까지 단계별로 살펴봅니다. 1. 이진 트리 노드 구조 이진 트리의 기본 단위는 노드(Node)이며, 각 노드는 데이터와 왼쪽, 오른쪽 자식 노드를 가리키는 포인터로 구성됩니다. ...

7월 7일 02:00에 게시됨