본문으로 건너뛰기

Queue

  • FIFO(First-In-First-Out) 원칙에 따라 데이터를 저장하고 접근하는 자료구조
  • 데이터의 삽입은 큐의 끝에서, 삭제는 큐의 앞에서
  • 버퍼(Buffer),작업 스케줄링, BFS등에서 활용
class Queue {
constructor() {
this._arr = [];
this._front = 0;
this._last = 0;
}

get size() {
return this._last - this._front;
}

isEmpty() {
return this._front === this._last;
}

enqueue(value) {
this._arr[this._last++] = value;
}

dequeue() {
if (this.isEmpty()) {
throw new Error("Queue is empty");
}
const value = this._arr[this._front++];
return value;
}
}

Dequeue

  • Double-Ended Queue의 약자로, 양쪽 끝에서 삽입과 삭제가 가능한 자료구조
  • 스택과 큐의 특성을 모두 가짐

primary queue

  • priority Queue는 우선순위를 가진 요소들을 저장하는 큐입
  • 각 요소는 우선순위를 가지며, 우선순위가 높은 요소가 먼저 제거
  • 우선순위 큐는 힙(Heap) 자료구조를 사용하여 구현되는 경우가 많음
  • 삽입 연산 시 요소를 우선순위에 따라 적절한 위치에 삽입하고, 삭제 연산 시 우선순위가 가장 높은 요소를 제거
  • 우선순위 큐는 작업 스케줄링, 이벤트 처리, 다익스트라 알고리즘 등에서 사용