Algorithm

Binary Tree Data Structure-이진 트리 데이터 구조

developerwkddbs 2024. 11. 6. 01:09

이진트리 데이터란?

각 노드가 최대 두개의 자식을 갖는 계층적 데이터 구조입니다.

이를 각각 왼쪽 자식(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)