목록CS (3)
개구리 개발자

프로그래밍을 배우다 보면, 한 번쯤은 트리 구조를 마주치게 된다. 그리고 그 트리 구조의 입구에는 늘 '이진 트리(Binary Tree)'가 있다. 이진 트리는 단순히 자식 노드를 둘만 가지는 트리라고 배우지만, 그 안에는 탐색, 정렬, 재귀, 메모리 최적화, 알고리즘 설계 등 다양한 문제 해결 전략이 내포되어 있다. 단순하지만 강력하고, 구조적으로 간단하지만 응용 범위는 광범위하다. 이번 글에서는 이진 트리의 기본 개념부터 시작해서 다양한 종류와 구조적 특성, 연산 방식, 그리고 실전에서 어떤 방식으로 활용되는지까지 자연스럽게 풀어보려 한다. 단순한 용어 정리를 넘어서, "왜 이런 구조가 존재하고", "어디에 쓰이는지를" 중심으로 공부해보자.이진 트리란 무엇인가?이진 트리(Binary Tree)는 각 ..

트리는 단순한 노드의 집합이 아니라, 각 노드들이 서로 계층적 관계를 가지며 연결된 복합적인 자료구조이다. 트리 구조를 정확히 이해하기 위해서는 그 안에서 사용되는 주요 용어들을 확실히 알고 넘어가는 것이 중요하다. 이번 글에서는 트리 구조를 설명할 때 반드시 알아야 할 핵심 용어들을 정리하고, 시각 자료를 함께 활용하여 개념을 쉽게 이해할 수 있도록 하였다.1. 루트 (Root)트리에서 부모가 없는 노드를 루트라고 한다.트리에는 단 하나의 루트 노드만 존재한다.루트 노드는 트리 전체의 시작점이며, 일반적으로 레벨 0에 위치한다.예시: 아래 그림에서 3 또는 A가 루트 노드이다.2. 간선 (Edge)노드 간의 연결선을 의미한다.부모 노드와 자식 노드를 잇는 선이며, 트리에서 노드 수가 n개일 때 간선 수..

프로그래밍을 학습하다 보면, 데이터를 구조화하여 저장하고 효율적으로 탐색·수정·삭제할 수 있는 다양한 방식들을 접하게 된다. 그중에서도 Tree(트리)는 복잡한 데이터 간의 관계를 계층적으로 표현하며, 빠른 탐색과 정렬, 분류 작업에 강력한 성능을 발휘하는 중요한 자료구조이다. 이 글은 건국대학교 2025-1학기 자료구조 수업에서 배운 내용을 바탕으로, Tree에 대한 핵심 개념을 정리한 복습 노트이다. 단순한 이론 암기를 넘어서, 코드나 시각 자료를 함께 활용하여 실제 구현과 동작 흐름까지 체감할 수 있도록 구성하였다. 트리의 기본 구조부터 이진 트리(Binary Tree), 이진 탐색 트리(Binary Search Tree), 균형 이진 탐색 트리(Balanced BST), 그리고 AVL 트리까지 다..