Javascript를 이용한 Queue(큐) 구현

임쿠쿠·2020년 8월 24일
1

Queues

Queue는 개념적으로 stack과 유사하며 둘 다 순차적인 구조를 지닌다. 그러나 Queue는 First In/First Out(FIFO)형태를 따른다.
Queue의 두 가지 연산으로는 enqueue(큐에 데이터를 넣는 연산), dequeue(큐에서 데이터를 꺼내는 연산)이 있다.

Queues의 이점

  • Dynamic 크기
  • 데이터를 받은 순서대로 처리
  • Low runtime

Queues의 단점

  • 가장 오래된 element만 검색 가능

Queues 적용

  • 데이터를 빈번하게 받을 시 완충장치로 용이
  • 가장 오래된 데이터를 먼저 처리가능하게 함

//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)
profile
Pay it forward

0개의 댓글