본문 바로가기

Tree

max-heap, min-heap - 이진트리의 활용 heap - 이진트리의 활용 실제로 상당히 유용하게 쓰이는 heap에 대해서 알아보도록 하자. heap이란 이진트리를 활용한 상당히 재밌는 구조이다. 주로 max-heap, min-heap으로 가장 큰값 또는 가장 작은 값을 빠르게 찾기 위해서 사용이된다.min, max 뿐만 아니라 원하는 조건대로 compare을 하면 가장 원하는 값을 빠른시간에 뽑아낼 수 있다. 아직 설명하기 전이지만 , sort를 한 후에 골라내는게 더 빠르지 않냐 라는 생각을 할 수 도있다.이 heap의 장점이라면, 삽입, 삭제를 했을 때 추가적인 sort가 필요없다는 것이다.이 정도로 서론을 끝내고 직접 적으로 heap에 대해서 알아보자. 1. heap?heap이란 최대값 또는 최소값을 빠르게 찾기위해서 고안된 트리모양의 자료구.. 더보기
이진트리(Binary Tree) - 트리(Tree)의 기초 이진트리(Binary tree) - 트리(Tree)의 기초 알고리즘과 자료구조를 공부를 하다 보면 후반부에서 스슬 어려워 지기 시작하는 부분이 바로 Tree이다. 트리의 종류도 이진트리, AVL트리, 레드블랙트리, 세그먼트 트리 등등 여러가지 트리의 종류가 있다. 이번 글에서는 트리의 기초 중 가장 간단하고 실제 많이 사용하는 이진트리에서 대해 알아보자. 본격적으로 이진트리에 대해서 살펴보기에 앞서, 간단하게 트리의 관련 용어부터 정리하고 시작하겠다. 0. 트리 용어 정리 그림에 중요한 용어들을 대충 정리를 해 보았다. 하나씩 설명을 하자면, 트리의 요소 하나 하나를 나타내는 동그라미를 노드(node)라고 한다. 트리는 이 노드들 끼리 부모와 자식의 관계를 형성을 하게 된다.그 중 부모노드의 부모노드의 .. 더보기