트리의 정의 자료들 사이의 계층적 관계를 나타내는데 사용하는 자료구조로 부모-자식 관계로 표현된다. 트리는 1개 이상의 노드를 갖는 집합으로 루트 노드가 존재해야 하며 부분트리 또한 트리 구조를 따라야 한다. 트리의 용어 루트 노드 : 트리의 최상위 노드로써 유일함 깊이 : 루트 노드에서 해당 노드까지 도달하는데 사용하는 간선의 개수 레벨 : 노드의 깊이 + 1 높이 : 루트 노드에서 해당 노드까지 도달하는데 지나간 정점의 개수 트리의 높이 : 노드 중 가장 높이가 높은 노드의 높이 노드의 차수 : 노드의 자식 수 트리의 차수 : 해당 트리 내 모든 노드의 차수 중 최댓값 부모 노드 : 부모-자식 관계에서 상위 계층에 있는 노드 자식 노드 : 부모-자식 관계에서 하위 계층에 있는 노드 형제 노드 : 부모..
우선순위 큐의 특징 큐(Queue)는 먼저 들어온 데이터가 먼저 나가는 FIFO(First In First Out) 형식의 자료구조이다. 우선순위 큐(Priority Queue)는 먼저 들어온 데이터가 아닌 우선순위가 높은 데이터가 먼저 나가는 자료구조이다. 우선순위 큐를 사용하기 위해서는 Comparable 인터페이스 또는 Comparator 인터페이스를 재정의해야 한다. 각각 compareTo 메소드와 compare 메소드를 재정의해야 되는데 거기서 우선순위 조건을 리턴해주면 우선순위 큐에서 알아서 우선순위대로 정렬해준다. 우선순위 큐는 일반적으로 힙을 이용하여 구현한다. 데이터를 삽입할 때 우선순위를 기준으로 최대 힙 혹은 최소 힙을 구성하고 데이터를 꺼낼 때 루트 노드를 얻어낸 뒤 루트 노드를 삭..