트리 구현 방법
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)
가이드라인
AI 튜터
배포
디자인
업로드
수업 노트
즐겨찾기
도움말
코드 에디터
코드 실행
코드 생성
실행 결과