트리 구현 방법
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)
다음 내용이 궁금하다면?
코드프렌즈 PLUS 멤버십 가입 or 강의를 등록해 주세요!