이진 트리의 전위 순회 및 레벨 순회 구현
이진 트리는 다양한 방식으로 저장될 수 있으며, 대표적인 저장 방식은 다음과 같습니다.
연결 리스트 기반 저장: 각 노드가 자식 노드를 가리키는 포인터를 포함하는 방식입니다.
배열 기반 저장: 루트 노드를 인덱스 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에 게시됨