본문 바로가기
반응형

Queue3

PriorityQueue 란? Queue 에 관해서는 이전 포스팅에서 몇번 다룬적이 있다. 자세한 내용은 아래 참고 포스팅 참고 바란다. 이번 포스팅에서는 우선순위 큐 라고 하는 PriorityQueue 에 대해서 작성해볼 것이다. 일단 우선 순위 큐 란. 큐와 동일하게 순서대로 들어는 오되 순서대로 나가는것이 아닌, 그 안에서 우선순위를 정하고 그 순서에 맞게 out 이 되는 queue이다. 자세한 내부적인 절차는, 우선순위 큐는 힙을 이용하여 구현이 된다. 데이터를 삽입할 때 우선순위를 기준으로 최대힙 혹은 최소 힙을 구성하고 데이터를 꺼낼 때 루트 노드를 얻어낸 뒤 루트 노드를 삭제할 때는 빈 루트 노드 위치에 맨 마지막 노드를 삽입한 후 아래로 내려가면서 적절한 자리를 찾아서 옮기는 방식으로 진행이 된다. 특징들은 아래와 같다.. 2023. 8. 4.
Queue (LinkedList) 사용법 이전 포스팅에서 stack, Queue 등에 대해서 다룬 글이 있다. 그리고 또 Message Queue도 다뤘고, 비슷한 kafka 역시 다룬적이 있다. 내용은 아래 참고 포스팅 참고 바란다. 이들의 공통점은 Queue 를 사용한다는 것이다. 그럼 이 Queue 를 자바에서 어떻게 사용하는지 다뤄볼 것이다. 선언 Queue q = new LinkedList(); 값 추가 q.add(1); q.offer(1); 둘의 차이는 아래와 같다. - add() 해당 큐 맨 뒤에 값 삽입 값 추가 성공 시 true 반환 큐가 꽉 찬 경우 IllegalStateException 에러 발생 - offer() 해당 큐 맨 뒤에 값 삽입 값 추가 성공 시 true 반환 값 추가 실패 시 false 반환 값 제거 q.rem.. 2023. 7. 26.
스택(Stack), 큐(Queue), 힙(Heap) 에 대해서 자료구조 알고리즘을 하다보면 스택, 힙, 큐에 대해서 많이 얘기를 들어봤을텐데 오늘 포스팅에서는 하나씩 설명을 해보려고 한다. 스택 선형 자료구조 Last In First out(LIFO) 구조 스택 특징 같은 구조의 같은 크기의 자료를 정해진 방향으로만 쌓을 수 있음 top으로 정한 곳을 통해서만 접근 가능(top이란 가장 쌓아둔 윗부분) 삭제는 top을 통해서만 가능 스택 연산 삭제 (pop()) : 스택에서 가장 위에 있는 항목을 제거 삽입 (push(item)) : item 하나를 스택의 가장 윗부분에 추가 읽기 (peek()) : 스택의 가장 위에 있는 항목을 반환 스택 포인터(SP) push나 pop을 할 때 해당 값의 위치를 알고 있어야 하는데 스택 포인터가 위치를 기억하고 처음 기본값은 -.. 2022. 8. 30.
반응형