Guidelines

트리 κ΅¬ν˜„ 방법

1. 트리 λ…Έλ“œ 클래슀 μ •μ˜

  • νŠΈλ¦¬λŠ” λ…Έλ“œλ“€μ΄ λΆ€λͺ¨-μžμ‹ 관계λ₯Ό 가지며 μ—°κ²°λœ 계측적 μžλ£Œκ΅¬μ‘°μž…λ‹ˆλ‹€.

  • TreeNode ν΄λž˜μŠ€λŠ” 각 λ…Έλ“œμ˜ 데이터와 μ™Όμͺ½ 및 였λ₯Έμͺ½ μžμ‹μ— λŒ€ν•œ μ°Έμ‘°λ₯Ό ν¬ν•¨ν•©λ‹ˆλ‹€.


트리 λ…Έλ“œ 클래슀 μ •μ˜
class TreeNode: def __init__(self, key): self.key = key self.left = None self.right = None

2. 이진 탐색 트리 클래슀 μ •μ˜

  • 이진 탐색 νŠΈλ¦¬λŠ” 각 λ…Έλ“œκ°€ μ΅œλŒ€ 두 개의 μžμ‹μ„ 가지며, μ™Όμͺ½ μžμ‹μ€ λΆ€λͺ¨λ³΄λ‹€ μž‘κ³ , 였λ₯Έμͺ½ μžμ‹μ€ λΆ€λͺ¨λ³΄λ‹€ 큰 νŠΉμ„±μ„ κ°–μŠ΅λ‹ˆλ‹€.

  • BinarySearchTree ν΄λž˜μŠ€λŠ” 트리의 루트 λ…Έλ“œλ₯Ό μ €μž₯ν•©λ‹ˆλ‹€.


class BinarySearchTree: def __init__(self): self.root = None

3. ν‚€ μ‚½μž… λ©”μ†Œλ“œ

  • insert λ©”μ†Œλ“œλŠ” μƒˆλ‘œμš΄ ν‚€λ₯Ό νŠΈλ¦¬μ— μ‚½μž…ν•©λ‹ˆλ‹€.

  • μ‚½μž… 과정은 λ…Έλ“œλ₯Ό μ μ ˆν•œ μœ„μΉ˜μ— λ°°μΉ˜ν•˜μ—¬ 이진 탐색 트리의 속성을 μœ μ§€ν•©λ‹ˆλ‹€.


ν‚€ μ‚½μž… λ©”μ†Œλ“œ μ˜ˆμ‹œ
def insert(self, key): if self.root is None: self.root = TreeNode(key) else: self._insert_recursive(self.root, key) def _insert_recursive(self, node, key): if key < node.key: if node.left is None: node.left = TreeNode(key) else: self._insert_recursive(node.left, key) elif key > node.key: if node.right is None: node.right = TreeNode(key) else: self._insert_recursive(node.right, key)

4. 이진 탐색 트리 객체 생성 및 μ‚¬μš©

  • BinarySearchTree 클래슀의 μΈμŠ€ν„΄μŠ€λ₯Ό μƒμ„±ν•˜κ³ , ν‚€λ₯Ό μ‚½μž…ν•˜μ—¬ 트리λ₯Ό κ΅¬μ„±ν•©λ‹ˆλ‹€.
이진 탐색 트리 객체 생성 및 μ‚¬μš© μ˜ˆμ‹œ
# 이진 탐색 트리 객체 생성 bst = BinarySearchTree() # ν‚€ μ‚½μž… bst.insert(50) bst.insert(30) bst.insert(70) bst.insert(20) bst.insert(40)

Guidelines

AI Tutor

Publish

Design

Upload

Notes

Favorites

Help

Code Editor

Run
Generate

Execution Result