Queue 란
2024-01-16
- Algorithm
- JavaScript
- Data Structures
자바스크립트에서 큐(Queue)를 구현하는 방법은 여러 가지가 있지만, 가장 간단하고 일반적인 방법은 배열을 사용하는 것입니다. 큐는 FIFO(First-In-First-Out) 구조
를 가지며, 배열을 사용하면 push
메서드로 큐의 뒤쪽에 요소를 추가하고, shift
메서드로 큐의 앞쪽에서 요소를 제거할 수 있습니다.
다음은 자바스크립트로 간단한 큐를 구현하는 예시입니다:
class Queue {
constructor() {
this.items = [];
}
// 큐에 요소 추가
enqueue(element) {
this.items.push(element);
}
// 큐에서 요소 제거하고 반환
dequeue() {
if (this.isEmpty()) {
return "Queue is empty";
}
return this.items.shift();
}
// 큐가 비어 있는지 확인
isEmpty() {
return this.items.length === 0;
}
// 큐의 맨 앞에 있는 요소 확인
front() {
if (this.isEmpty()) {
return "Queue is empty";
}
return this.items[0];
}
// 큐의 모든 요소 출력
printQueue() {
let str = "";
for (let i = 0; i < this.items.length; i++) {
str += this.items[i] + " ";
}
return str;
}
}
// 큐 사용 예시
const queue = new Queue();
queue.enqueue(1);
queue.enqueue(2);
queue.enqueue(3);
console.log(queue.printQueue()); // 1 2 3
console.log(queue.dequeue()); // 1
console.log(queue.front()); // 2
console.log(queue.printQueue()); // 2 3
이 구현에서는 큐를 클래스로 정의하고, enqueue
, dequeue
, isEmpty
, front
, printQueue
등의 메서드를 제공합니다.
-
enqueue
: 큐의 뒤에 새로운 요소를 추가합니다. -
dequeue
: 큐에서 첫 번째 요소를 제거하고 반환합니다. -
isEmpty
: 큐가 비어 있는지 확인합니다. -
front
: 큐의 첫 번째 요소를 반환하지만 제거하지는 않습니다. -
printQueue
: 큐의 모든 요소를 문자열로 반환합니다.
Class객체에서 ...
Cypress테스트...