[알고리즘/자료구조] JavaScript 큐(Queue) 구현하기

김효선·2021년 2월 20일
0

알고리즘

목록 보기
3/6

큐(Queue)

  • 큐는 자료구조형에 속한다.
  • 스택과는 다르게 먼저 들어간 데이터가 먼저 나오는 선입선출 자료구조로, FIFO(First In First Out)이라고도 한다.
  • 데이터를 집어넣는 것을 인큐(enqueue)라고 하고,
    데이터를 추출하는 것을 디큐(dequeue)라고 한다.

배열 메소드를 사용하지 않고 구현해보기

class Queue {
  constructor() {
    this.arr = [];
    this.head = 0;
    this.tail = 0;
  }
  enqueue(item) {
    this.arr[this.tail++] = item;
  }
  dequeue() {
    if (this.head >= this.tail) {
      return null;
    } else {
      const result = this.arr[this.head++];
      return result;
    }
  }
}

let queue = new Queue();
queue.enqueue(1); // arr: [1] head: 0 tail: 1
queue.enqueue(2); // arr: [1, 2] head: 0 tail: 2
queue.enqueue(3); // arr: [1, 2, 3] head: 0 tail: 3
console.log(queue.dequeue()); // 1 , head: 1 tail: 3
console.log(queue.dequeue()); // 2 , // head: 2 tail: 3
console.log(queue.dequeue()); // 3 , // head: 3 tail: 3
console.log(queue.dequeue()); // null , // head: 3 tail: 3
profile
개발을 게임처럼!

0개의 댓글