본문 바로가기
  • 개발 / 공부 / 일상
Javascript

(Javascript) [자료구조] 큐

by JJeongHyun 2023. 1. 16.
반응형

queue(큐)

  • 선입선출(FIFO, First In First Out), 먼저 들어간 데이터가 먼저 나온다
  • 보통 사용자 입력에 대해서 저장, 관리.
  • 레스토랑 앱, 예매 앱 등등 주요한 자료구조로 사용
  • Callback Queue
    • 한쪽으로 데이터를 넣고 다른 쪽으로 데이터를 가져오는 구조. 데이터를 추가한 순서대로 데이터가 저장되고, 추가한 순서대로 데이터를 가져오게 된다
    • 추가적으로 데이터를 넣는 쪽을 rear, 데이터를 가져오는 쪽을 front
    • 데이터를 삽입하는 행위를 Eequeue, 데이터를 가져오는 것을 Dequeue

Queue 이미지화

 

class Node {
  constructor(data) {
    this.data = data;
  }
}
class QueueNode extends Node {
  constructor(data) {
    super(data);
    this.head;
  }
  enqueue(data) {
    if (!this.data) this.data = data;
    else if (this.head) {
      this.head.enqueue(data);
    } else {
      this.head = new QueueNode(data);
    }
  }
  dequeue() {
    const temp = this.data;
    if (this.head) {
      this.data = this.head.data;
      if (!this.head?.head) {
        delete this.head;
      } else {
        this.head.dequeue();
      }
    } else {
      this.data = undefined;
    }
    return temp;
  }
}

const queue = new QueueNode(1);
console.log(queue);
queue.enqueue(2);
queue.enqueue(3);
queue.enqueue(4);
console.log(queue);
console.log(queue.dequeue());
console.log(queue.dequeue());
console.log(queue);

위 Queue 생성 및 결과 창

 

'Javascript' 카테고리의 다른 글

(Javascript) [자료구조] List(2)  (0) 2023.01.16
(Javascript) [자료구조] List(1)  (0) 2023.01.16
(Javascript) [자료구조] Stack  (0) 2023.01.16
(Javascript) 자료구조  (2) 2023.01.16
(Javascript) Class  (0) 2023.01.16