반응형
트리 Tree
노드들이 나무 가지처럼 연결된 비선형 계측적 자료 구조
트리 구조를 왜 사용하는가?
선형 데이터 구조로는 계층형 구조를 나타낼 수 없기 때문에
트리의 구조는 '데이터 저장'의 의미보다는
'저장된 데이터를 더 효과적으로 탐색'하기 위해 사용한다
트리의 구조
노드 Node
트리를 구성하고 있는 기본 요소
노드에는 키 또는 값과 하위 노드에 대한 포인터를 가지고 있다
간선 Edge
노드와 노드 간의 연결선
루트 노트 Root Node
트리 구조에서 부모가 없는 최상위 노드
부모 노드 Parent Node
자식 노드를 가진 노드
자식 노드 Child Node
부모 노드의 하위 노드
형제 노드 Sibling Node
같은 부모를 가지는 노드
깊이 Depth
루트에서 어떤 노드까지의 간선 Edge 수
높이 Height
어떤 노드에서 리프 노드까지 가장 긴 경로의 간선 Edge 수
Level
루트에서 어떤 노드까지의 간선 Edge 수
Path
한 노드에서 다른 한 노드에 이르는 길 사이에 놓여있는 노드들의 순서
이진 트리 Binary Tree
각각의 노드가 최대 두 개의 자식 노드를 가지는 트리 자료 구조
자식은 왼쪽 자식 (Left child) 과 오른쪽 자식 (Right child) 로 나눠진다
이진 트리 순회
1. Preorder ; Root - L - R 순서
2. Inorder ; L - Root - R 순서
3. Postorder - L - R - Root 순서
파이썬으로 구현한 이진 트리
# 트리의 개별 노드
class Node:
# 노드 초기화
def __init__(self, item):
self.data = item
self.left = None
self.right = None
# 트리 전체를 관리하는 클래스
class BinaryTree:
# 트리의 루트 노드 설정
def __init__(self, r):
self.root = r
반응형
'TIL > Python' 카테고리의 다른 글
[TIL] 그래프 종류와 표현 방식 (1) | 2024.09.20 |
---|---|
[TIL] 클래스와 객체 (1) | 2024.09.20 |
[TIL] 덱 deque Double-Ended Queue (1) | 2024.09.19 |
[TIL] 매개 변수 탐색 Parametric Search (0) | 2024.09.18 |
[TIL] 이분 탐색 Binary Search (2) | 2024.09.18 |