-
[자료구조] Javascript로 Queue 구현하기■ Front-End/- JavaScript & TypeScript 2019. 5. 23. 00:21
Javascript로 Queue를 구현한 코드이다.
이 코드도 Stack과 마찬가지로 Javascript에서 기본적으로 제공하는 push(), pop() 메서드를 사용하지 않고 작성했다.
class Queue { constructor() { this.bucket = []; } isEmpty() { return this.bucket.length == 0; } enqueue(val) { this.bucket[this.bucket.length] = val; } dequeue() { if(this.bucket.length == 0) { return -1; } let val = this.bucket[0]; this.bucket = this.bucket.slice(1, this.bucket.length); console.log(">> bucket : ", this.bucket); return val; } peek() { return this.bucket.length == 0 ? -1 : this.bucket[0]; } clear() { this.bucket = []; } print() { for(let i=0; i<this.bucket.length; i++) { console.log("Queue item[" + i + "] : " + this.bucket[i]); } } }
사용 예
let q = new Queue();
q.enqueue(1);
q.enqueue(2);
q.enqueue(3);
q.enqueue(4);
q.enqueue(5);
q.print();
console.log("Queue dequeue() : ", q.dequeue());
console.log("Queue dequeue() : ", q.dequeue());
console.log("Queue dequeue() : ", q.dequeue());
console.log("Queue peek() : ", q.peek());결과 값
Queue item[0] : 1
Queue item[1] : 2
Queue item[2] : 3
Queue item[3] : 4
Queue item[4] : 5
>> bucket : [ 2, 3, 4, 5 ]
Queue dequeue() : 1
>> bucket : [ 3, 4, 5 ]
Queue dequeue() : 2
>> bucket : [ 4, 5 ]
Queue dequeue() : 3
Queue peek() : 4
'■ Front-End > - JavaScript & TypeScript' 카테고리의 다른 글
[ES6] iterator, generator, async/await에 대하여 (0) 2019.06.20 [WEB] CORS에 대하여 (0) 2019.06.20 [ES6] Promise에 대하여 (0) 2019.06.19 [자료구조] Javascript로 Tree와 Tree 순회 구현하기 (0) 2019.05.24 [자료구조] Javascript로 Stack 구현하기 (0) 2019.05.23