이진트리 데이터란?
각 노드가 최대 두개의 자식을 갖는 계층적 데이터 구조입니다.
이를 각각 왼쪽 자식(left child)과 오른쪽 자식(right child)이라고 합니다.
삽입, 삭제, 순회와 같은 다양한 작업을 통해 데이터를 효율적으로 저장하고 검색하는데 용이합니다.
# Python3를 활용하여 배열을 사용한 트리 구현
# 0~n-1까지 넘버링 시작
tree = [None] * 10
def root(key):
if tree[0] != None:
print("Tree already had root")
else:
tree[0] = key
def set_left(key, parent):
if tree[parent] == None:
print("Can't set child at", (parent * 2) + 1, ", no parent found")
else:
tree[(parent * 2) + 1] = key
def set_right(key, parent):
if tree[parent] == None:
print("Can't set child at", (parent * 2) + 2, ", no parent found")
else:
tree[(parent * 2) + 2] = key
def print_tree():
for i in range(10):
if tree[i] != None:
print(tree[i], end="")
else:
print("-", end="")
print()
# Driver Code
root('A')
set_left('B', 0)
set_right('C', 0)
set_left('D', 1)
set_right('E', 1)
set_right('F', 2)
print_tree()
#이 코드는 Gaurav Kumar Tailor가 기여했습니다.
Reference
geeksforgeeks(meaning)
geeksforgeeks(Implementation)
'Algorithm' 카테고리의 다른 글
Dijikstra Algorithm-다익스트라 알고리즘, 최단거리 알고리즘 (0) | 2024.11.06 |
---|---|
Stack Data Structure-스택 데이터 구조 (0) | 2024.11.05 |
DFS-깊이 우선 탐색 (0) | 2024.11.05 |
BFS-넓이 우선 탐색 (0) | 2024.11.05 |