Queue는 개념적으로 stack과 유사하며 둘 다 순차적인 구조를 지닌다. 그러나 Queue는 First In/First Out(FIFO)형태를 따른다.
Queue의 두 가지 연산으로는 enqueue(큐에 데이터를 넣는 연산), dequeue(큐에서 데이터를 꺼내는 연산)이 있다. 
//Queue
class Node {
  constructor(data) {
    this.data = data;
    this.next = null;
  }
}
class Queue {
  constructor() {
    //head은 처음을 가리키고 head는 끝을 가리킨다.
    this.count = 0;
    this.head = null;
    this.rear = null;
  }
  enqueue(data) {
    let node = new Node(data);
    if (!this.head) {
      this.head = node;
    } else {
      this.rear.next = node;
    }
    this.rear = node;
    return ++this.count;
  }
  dequeue() {
    if (!this.head) {
      return false;
    }
    let data = this.head.data;
    this.head = this.head.next;
    --this.count;
    return data;
  }
  front() {
    console.log(this.head && this.head.data);
  }
}
let queue = new Queue();
queue.enqueue(100);
queue.enqueue(200);
queue.enqueue(300);
console.log(queue.dequeue());
queue.front()
console.log(queue)