트리 μ•Œκ³ λ¦¬μ¦˜

λ°μ΄ν„°λ² μ΄μŠ€, 파일 μ‹œμŠ€ν…œ, 검색 μž‘μ—…μ„ μ§€μ›ν•˜λŠ” 계측적 데이터 ꡬ쑰λ₯Ό λ‹€λ£¨λŠ” 방법을 λ°°μš°μ„Έμš”. 이진 검색 트리λ₯Ό μ΄ν•΄ν•˜κ³ , O(log n) 연산을 보μž₯ν•˜λŠ” AVL νŠΈλ¦¬μ™€ λ ˆλ“œ-λΈ”λž™ 트리 같은 μžκ°€ κ· ν˜• 트리λ₯Ό νƒμƒ‰ν•˜λ©°, 데이터 μ²˜λ¦¬μ™€ ν‘œν˜„μ‹ 평가에 ν•„μˆ˜μ μΈ 트리 순회 기법(μ€‘μœ„, μ „μœ„, ν›„μœ„)을 λ§ˆμŠ€ν„°ν•˜μ„Έμš”.

3 μ•Œκ³ λ¦¬μ¦˜

트라이 (접두사 트리)

Intermediate

각 λ…Έλ“œκ°€ 문자λ₯Ό λ‚˜νƒ€λ‚΄λŠ” 효율적인 λ¬Έμžμ—΄ μ €μž₯ 및 검색을 μœ„ν•œ 트리 데이터 κ΅¬μ‘°μž…λ‹ˆλ‹€. λ¬Έμžμ—΄ 길이 m에 λŒ€ν•΄ O(m) μ‚½μž…/검색 연산을 κ°€λŠ₯ν•˜κ²Œ ν•©λ‹ˆλ‹€. μžλ™ μ™„μ„± μ‹œμŠ€ν…œ, λ§žμΆ€λ²• 검사기, IP λΌμš°νŒ…(졜μž₯ 접두사 λ§€μΉ­), 사전 κ΅¬ν˜„μ— ν•„μˆ˜μ μž…λ‹ˆλ‹€. 곡톡 접두사가 μžˆλŠ” 큰 λ¬Έμžμ—΄ 집합에 λ©”λͺ¨λ¦¬ νš¨μœ¨μ μž…λ‹ˆλ‹€.

O(m)
O(ALPHABET_SIZE Γ— N Γ— M)
treestring-algorithms
Start Learning

μ΅œμ†Œ 곡톡 쑰상 (LCA)

Intermediate

μž¬κ·€μ  μ ‘κ·Ό 방식을 μ‚¬μš©ν•˜μ—¬ 이진 νŠΈλ¦¬μ—μ„œ 두 λ…Έλ“œμ˜ μ΅œμ†Œ 곡톡 쑰상을 μ°ΎμŠ΅λ‹ˆλ‹€. LCAλŠ” 두 λ…Έλ“œλ₯Ό λͺ¨λ‘ μžμ†μœΌλ‘œ κ°–λŠ” κ°€μž₯ κΉŠμ€ λ…Έλ“œμž…λ‹ˆλ‹€. 계측적 데이터(관계 μ°ΎκΈ°), λ…Έλ“œ κ°„ 거리 계산, 버전 관리 μ‹œμŠ€ν…œ(병합 베이슀)의 μ‘μš©μ΄ μžˆμŠ΅λ‹ˆλ‹€. 더 κ³ κΈ‰ 트리 쿼리의 κΈ°μ΄ˆμž…λ‹ˆλ‹€.

O(n)
O(h)
treebinary-tree
Start Learning

AVL 트리

Advanced

1962λ…„ Adelson-Velsky와 Landisκ°€ 발λͺ…ν•œ 졜초의 μžκ°€ κ· ν˜• 이진 검색 νŠΈλ¦¬μž…λ‹ˆλ‹€. μ„œλΈŒνŠΈλ¦¬μ˜ 높이 차이λ₯Ό μ΅œλŒ€ 1둜 μœ μ§€ν•˜μ—¬ O(log n) 연산을 보μž₯ν•©λ‹ˆλ‹€. μ‚½μž…/μ‚­μ œ ν›„ μž¬κ· ν˜•μ„ μœ„ν•΄ λ„€ κ°€μ§€ μœ ν˜•μ˜ νšŒμ „(LL, RR, LR, RL)을 μˆ˜ν–‰ν•©λ‹ˆλ‹€. λ°μ΄ν„°λ² μ΄μŠ€, 파일 μ‹œμŠ€ν…œ, 보μž₯된 둜그 연산이 μ€‘μš”ν•œ 곳에 μ‚¬μš©λ©λ‹ˆλ‹€.

O(log n)
O(n)
treeself-balancing
Start Learning

πŸ’‘ ν•™μŠ΅ 팁

기초λ₯Ό λ‹€μ§€κΈ° μœ„ν•΄ μ΄ˆκΈ‰ μ•Œκ³ λ¦¬μ¦˜λΆ€ν„° μ‹œμž‘ν•œ λ‹€μŒ, 쀑급 및 κ³ κΈ‰ 주제둜 μ§„ν–‰ν•˜μ„Έμš”. 각 μ•Œκ³ λ¦¬μ¦˜μ—λŠ” μΈν„°λž™ν‹°λΈŒ μ‹œκ°ν™”, λ³΅μž‘λ„ 뢄석, 그리고 μ—¬λŸ¬ μ–Έμ–΄μ˜ μ½”λ“œ μ˜ˆμ œκ°€ ν¬ν•¨λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.