enqueue: 데이터 넣기
dequeue: 데이터 빼기 + 삭제
peek: head 데이터 확인(출력하면 가장 먼저 나올 데이터)
isEmpty: 비어있는지 확인
class Queue {
constructor() {
this._arr = [];
}
enqueue(item) {
this._arr.push(item);
}
dequeue() {
return this._arr.shift();
}
peek() {
return this._arr[0];
}
isEmpty() {
return this._arr.length === 0 ? true : false;
}
}
import LinkedList from '../linked-list/LinkedList';
// 기존에 제작한 LinkedList import
export default class Queue {
constructor() {
this.linkedList = new LinkedList();
}
enqueue(value) { // push와 동일
this.linkedList.append(value);
}
dequeue() { // shift와 동일
const removedHead = this.linkedList.deleteHead();
return removedHead ? removedHead.value : null;
}
peek() {
if (!this.linkedList.head) {
return null;
}
return this.linkedList.head.value;
}
isEmpty() {
return !this.linkedList.head;
}
}
Github | tech-interview-for-developer
Github | Interview_Question_for_Beginner
Github | javascript-algorithms | trekhleb
helloworldjavascript
Photo by Alain Pham on Unsplash