class Queue {
constructor() {
this.items = [];
}
// 큐에 데이터를 추가하는 메소드
enqueue(element) {
this.items.push(element);
}
// 큐에서 데이터를 제거하고 반환하는 메소드
dequeue() {
if (this.isEmpty()) {
return "Queue is empty";
}
return this.items.shift();
}
// 큐의 첫 번째 데이터를 반환하는 메소드 (제거하지 않음)
front() {
if (this.isEmpty()) {
return "Queue is empty";
}
return this.items[0];
}
// 큐가 비어 있는지 확인하는 메소드
isEmpty() {
return this.items.length === 0;
}
// 큐의 크기를 반환하는 메소드
size() {
return this.items.length;
}
// 큐의 모든 데이터를 문자열로 반환하는 메소드
print() {
return this.items.toString();
}
}
// 큐 사용 예시
const queue = new Queue();
console.log(queue.isEmpty()); // true
queue.enqueue(1);
queue.enqueue(2);
queue.enqueue(3);
console.log(queue.print()); // 1,2,3
console.log(queue.front()); // 1
console.log(queue.dequeue()); // 1
console.log(queue.print()); // 2,3
console.log(queue.size()); // 2
console.log(queue.isEmpty()); // false
728x90
반응형