> For the complete documentation index, see [llms.txt](https://byulseop-til.gitbook.io/sinheeseop_til/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://byulseop-til.gitbook.io/sinheeseop_til/cs-computer-science/datastructure.md).

# DataStructure

> **"순서대로 읽으면 알아서 이해되게끔 구성하였다."**

## 폴더 구조 (4단계 철학 기반)

이 폴더는 [자료구조 개념서](/sinheeseop_til/cs-computer-science/datastructure/_.md)의 **4단계 정의법**에 따라 구성되어 있습니다.

| 폴더                  | 단계       | 설명                                   |
| ------------------- | -------- | ------------------------------------ |
| `00_Core_Concept`   | -        | **핵심 철학** : 4단계 정의법과 자료구조의 근본        |
| `01_Physical_Basis` | 4단계 (근본) | **물리적 기반** : 배열(Array) vs 연결(Linked) |
| `02_ADT`            | 1\~2단계   | **추상 자료형** : "무엇을 하는가?" (기능 명세)      |
| `03_Structure`      | 3\~3.5단계 | **논리적 설계** : "어떻게 구성하는가?" (자료구조)     |
| `04_Implementation` | 4단계      | **구현체** : "코드로 어떻게 짰는가?" (Java 등)    |

## 상세 목차

### 0. 핵심 철학

* [자료구조 개념서](/sinheeseop_til/cs-computer-science/datastructure/_.md) - 4단계 정의법, ADT vs 자료구조 vs 구현체

### 1. 물리적 기반 (배열 vs 연결)

* [README](/sinheeseop_til/cs-computer-science/datastructure/01_physical_basis/01_physical_basis.md) - 배열과 연결의 핵심 차이
* *(작성 예정)* Array\_Theory.md - 배열의 메모리 구조와 특성
* *(작성 예정)* LinkedList\_Theory.md - 연결 리스트의 메모리 구조

### 2. 추상 자료형 (ADT)

* [Map](/sinheeseop_til/cs-computer-science/datastructure/02_adt/map.md) - Key-Value 쌍의 정의와 기능
* [Set](/sinheeseop_til/cs-computer-science/datastructure/02_adt/set.md) - 중복 없는 집합의 정의

### 3. 논리적 설계 (자료구조)

* [HashTable](/sinheeseop_til/cs-computer-science/datastructure/03_structure/hashtable.md) - 해시 테이블 자료구조
* **Tree/**
  * [Tree](/sinheeseop_til/cs-computer-science/datastructure/03_structure/tree/tree.md) - 트리 구조의 개념과 종류
  * [AdvancedTree\_Overview](/sinheeseop_til/cs-computer-science/datastructure/03_structure/tree/advancedtree_overview.md) - 고급 트리 간략 정리 (AVL, Red-Black, B-Tree 등)

> **참고**: 해시 함수, 충돌 해결 알고리즘(체이닝, 개방 주소법)은 [알고리즘 파트](/sinheeseop_til/cs-computer-science/algorithm/hash/hash.md)에 있습니다.

### 4. 구현체

* [Java\_HashMap](/sinheeseop_til/cs-computer-science/datastructure/04_implementation/java_hashmap.md) - Java의 표준 해시 테이블 구현체
* [Java\_Hashtable](/sinheeseop_til/cs-computer-science/datastructure/04_implementation/java_hashtable.md) - 레거시 Hashtable 클래스 분석
* [Java\_LinkedHashMap](/sinheeseop_til/cs-computer-science/datastructure/04_implementation/java_linkedhashmap.md) - 순서를 기억하는 Map

## 학습 순서 권장

1. **00\_Core\_Concept** 먼저 읽기 → 자료구조의 본질 이해
2. **01\_Physical\_Basis** → 모든 자료구조의 근본(배열/연결) 파악
3. **02\_ADT** → "무엇을 할 것인가?" 기능 정의
4. **03\_Structure** → "어떻게 배치할 것인가?" 논리적 설계
5. **04\_Implementation** → 실제 코드로 어떻게 구현되는지 확인
