rO_Or·2024년 2월 12일

간단한 공부

목록 보기
6/12

큐는 FIFO 원칙을 따르는 선형 자료구조.

First in First Out
가장먼저 들어간 데이터가 가장 먼저 나온다.

큐는 스택과 마찬가지로 추상 자료형이다.

요소 추가 => enqueue
요소 제거 => dequeue

추가되는 방향과 제거되는 방향이 같다.

class Queue {
  constructor() {
  	this._items = [];
  }
  enqueue(item) {
    this._items.push(item);
  }
  dequeue() {
    if(this.isEmpty()) {
      console.log("Queue is empty.");
      return;
    }
    return this._items.shift();
  }
  isEmpty() {
    return this._items.length === 0;
  }
  size() {
    return this._items.length;
  }
}

const queue = new Queue();
queue.enqueue(10);
queue.enqueue(20);
queue.enqueue(30);
console.log(queue) // [10,20,30]
queue.deququ();
console.log(queue); // [20,30]
queue.size(); // 2

enqueue는 일반적으로 O(1) 시간 복잡도를 가진다.
dequeue는 일반적으로 O(n) 시간 복잡도를 가진다.
배열 말고 연결 리스트를 사용한다면 O(1)를 가질 수 있다.

profile
즐거워지고 싶다.

0개의 댓글