2021-04-24

#JS#dataStructure

큐 (Queue)

  • 데이터를 넣을 수 있는 선형구조
  • 먼저 넣은 데이터가 먼저 나오는 FIFO(First In First Out)
  • 데이터를 집어넣는 enqueue
  • 데이터를 추출하는 dequeue
  • 현재 데이터가 큐에 존재하는지 확인하는 contains
  • 스택의 총 크기를 반환하는 size

구현

class Queue {
  constructor() {
    this.array = []
  }

  enqueue(value) {
    this.array.push(value)
  }

  dequeue() {
    this.array.shift()
  }

  contains(value) {
    return this.array.some(item => item === value)
  }

  size() {
    return this.array.length
  }
}

const instance = new Queue()

instance.enqueue(1)
instance.array // [1]

instance.enqueue(2)
instance.array // [1, 2]

instance.enqueue(4)
instance.array // [1, 2, 4]

instance.dequeue()
instance.array // [2, 4]

instance.contains(1) // false
instance.contains(2) // true

instance.size() // 2

Queue순서대로 처리 되어야 하는 작업의 버퍼(임시저장)로 많이 사용