티스토리 뷰

Algorithm

자료구조 Queue(큐) in JavaScript

Kyeongti 2021. 11. 7. 16:35

자료구조에서 큐는 First in First out 구조이다.

즉 먼저 들어온 것이 먼저 나간다.

놀이기구를 타러 가면 보통 줄을 선다. 먼저 선 사람이 먼저 놀이기구를 타는 것과 같다고 생각하면 된다.

 

enqueue의 기능은 배열의 내장 메소드인 push와 같다고 보면 되고, 

dequeue는 shift와 같다고 보면 된다.

//queue
const Queue = (function () {
  function Queue() {
    this.count = 0;
    this.head = null;
    this.rear = null;
  }

  function Node(data) {
    this.data = data;
    this.next = null;
  }

  Queue.prototype.enqueue = function (data) {
    const node = new Node(data);
    if (!this.head) {
      this.head = node;
    } else {
      let now = this.head;
      let current;
      while (now) {
        current = now;
        now = now.next;
      }
      current.next = node;
    }

    this.rear = node;
    this.count++;

    return this.count;
  }

  Queue.prototype.dequeue = function () {
    if (!this.count) {
      return false;
    }

    const dequeueData = this.head.data;
    this.head = this.head.next;
    this.count--;
    
    return dequeueData;
  }

  return Queue;
})();

const queue = new Queue();
queue.enqueue(1);
queue.enqueue(3);
queue.enqueue(5);
queue.enqueue(11);
queue.enqueue(45);
queue.enqueue(12);

참고 및 출저 : https://www.zerocho.com/category/Algorithm/post/580b9b94108f510015524097

 

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함