Tree의 개념트리는 노드들의 구조가 계층적 구조를 갖는 비선형 자료구조이며, 노드와 노드를 연결하는 간선으로 구성된다. 트리 자료구조는 나무(Tree)를 거꾸로 매단 모양과 유사하다. 트리는 하나의 루트 노드를 갖으며 루트 노드는 0개 이상의 자식 노드를 갖는다. 그 자식 노드 또한 0개 이상의 자식 노드를 갖으며 이는 반복적으로 정의된다. 트리 구조의 기본 용어노드(Node)트리를 구성하는 기본 요소이며, 노드에는 키 또는 값과 하위 노드에 대한 포인터를 갖고있다. 간선(Edge)노드와 노드 간의 연결선 루트 노드(Root Node)트리 구조에서 부모가 없는 최상위 노드 부모 노드(Parent Node)자식 노드를 갖는 노드 자식 노드(Child Node)부모 노드의 하위 노드 형제 노드(Sibl..
최소 힙
힙 Heap 정의 힙은 완전 이진 트리 자료구조 이다. 힙에서는 항상 루트 노드를 제거한다. 종류 최소힙 (min heap) 루트 노드가 가장 작은 값을 가진다. 가장 작은 데이터가 우선적으로 제거된다. 최대힙 (max heap) 루트 노드가 가장 큰 값을 갖는다. 값이 가장 큰 데이터가 우선적으로 제거된다. 완전 이진 트리란? 루트 노드 부터 시작하며 왼쪽 자식 노드, 오른쪽 자식 노드 순서로 데이터가 차례대로 삽입되는 트리를 의미한다. 힙에 새로운 원소가 삽입될 때 새로운 원소가 삽입되었을 때 O(log N)의 시간 복잡도로 힙 성질을 유지할 수 있다. 삽입시에 부모 노드와 크기를 비교하여 자리를 바꾼다. (최소힙은 부모노드 보다 작으면 up, 최대힙은 크면 up) 비교결과가 false 혹은 노드 도..