[자료구조] 우선순위 큐(priorityQueue) 알아보기 (with 자바)
2023. 2. 11. 09:49
몰아 넣기
우선순위 큐(priorityQueue) 란? 우선순위 큐(Queue)란? 우선순위 큐는 평범한 큐(queue)나 스택(stack)과 비슷한 축약 자료형이다. 그러나 각 원소들은 우선순위를 갖고 있어 높은 우선순위를 가진 원소는 낮은 우선순위를 가진 원소보다 먼저 처리된다. 내부 요소는 힙으로 구성되어 있어 시간 복잡도는 O(NLogN)이며, 이진트리 구조로 이루어져 있다. 우선순위 큐에 들어가는 원소는 비교가 가능한 기준이 있어야한다. 즉, 우선순위 큐에 저장할 객체는 필수적으로 Comparable Interface를 구현해야한다. Comparable Interface를 구현하면 compareTo method를 override 하게 되고 해당 객체에서 처리할 우선순위 조건을 리턴해주면 PriorityQu..
[collection] 큐(queue) 무엇인가요?
2022. 8. 19. 14:41
몰아 넣기
큐(queue) 란? 큐는 메모리 안 데이터들을 더욱 효율적으로 다루기 위해 만들어진 데이터 참조방식 구조는 '선입선출'의 구조를 가지고 있으며 양쪽 끝에서만 데이터를 넣거나 뺄 수 있는 선형구조입니다. 즉, 제일 처음에 들어온 데이터가 제일 빨리 나가는 방식입니다. 은행 창구 줄서기 예로 든 설명입니다. (1) Enqueue : 큐 맨 뒤에 어떠한 요소를 추가, 마지막으로 온 손님에게 번호표 발부 (2) Dequeue : 큐 맨 앞쪽의 요소를 삭제, 창구에서 서비스를 받은 손님의 번호표를 대기목록에서 삭제 (3) Peek : front에 위치한 데이터를 읽음, 다음 서비스를 받을 손님이 누구인지 확인 (4) front: 큐의 맨 앞의 위치(인덱스), 다음 서비스를 받을 손님의 번호 (5) rear: 큐..
[java/collection] 스택(stack), 큐(queue), ArrayDeque 대해서
2022. 6. 10. 13:25
몰아 넣기
스택이란?(stack) 스택은 마지막에 저장한 데이터를 가장 먼저 꺼내는 자료구조로 입니다. 이것을 LIFO(Last In First Out) 라고 합니다. 웹브라우저의 앞페이지 이동 뒤페이지 이동 / 그릇 쌓기 대표예시입니다. 아래 그림을 보도록 하죠. 먼저 삽입된 값인 17이 가장 아래로, 이후 삽입되는 값은 그 위에 쌓이기 시작합니다. 이후, pop()을 통해 값을 반환할 때도 마지막에 삽입된 값인 45가 가장 먼저 반환되죠! 예제 public class Main { public static void main(String[] args) { Stack stack = new Stack(); stack.push(1); stack.push(3); stack.push(5); stack.push(7); Sys..