티스토리 뷰
자료구조에서 큐는 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
'Algorithm' 카테고리의 다른 글
LeetCode - Minimum Absolute Difference in BST in JavaScript (0) | 2021.11.25 |
---|---|
LeetCode - Lowest Common Ancestor of a Binary Search Tree in JavaScript (0) | 2021.11.24 |
Merge Sort in JavaScript (0) | 2021.11.20 |
자료구조 Stack in JavaScript (0) | 2021.11.07 |
해시 테이블(hash table) JavaScript (0) | 2021.10.27 |
댓글