Stack & Queue 3
Classを使用してQueueを実装しましょう.先入データ先出スタックとは異なり、先入データ先出スタックの形式を有する.
class Queue {
constructor() {
this.storage = {}; // 데이터를 넣을 객체를 만들어주자.
this.front = 0; // 배출할 데이터를 가르키는 인덱스
this.rear = 0; // 삽입한 데이터를 가르키는 인덱스
}
size() {
return this.rear - this.front;
}
enqueue(element) {
this.storage[this.rear] = element;
this.rear += 1;
}
// { 0: Sasha, 1: Lisa, 2: Coco} 와 같은 형태로 데이터가 삽입되며,
// 데이터를 삽입할 때마다 다음 데이터 key값을 미리 넣어주기 위해 +1을 해주자.
dequeue() {
if (this.size() === 0) {
return;
}
const result = this.storage[this.front];
delete this.storage[this.front];
this.front += 1;
return result;
}
}
// 더 배출시킬 데이터가 없다면 undefined를 리턴한다. stack과 마찬가지로,
// 배출시킬 데이터를 result에 할당시켜주고, delete method를 이용해서
// queue 내에서 삭제해주자. 그리고 다음 배출시킬 데이터의 인덱스를 가르키는
// front 값을 +1 하자. 최종적으로 queue에서 배출된 데이터를 리턴해준다.
今回は配列をチェックし、簡単にqueueを実現しました.const queue = [];
queue.push(1);
queue.push(2);
queue.push(3);
queue.push(4);
queue.push(5);
console.log(queue); // [1, 2, 3, 4, 5]
queue.shift();
queue.shift();
console.log(queue); // [3, 4, 5] 앞에서 부터 요소가 삭제됨을 확인할 수 있다.
Reference
この問題について(Stack & Queue 3), 我々は、より多くの情報をここで見つけました https://velog.io/@sashainspb/Stack-Queue-3テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol