-
[자료구조] Javascript로 Stack 구현하기■ Front-End/- JavaScript & TypeScript 2019. 5. 23. 00:07
Javascript에서 제공하고 있는 push(), pop()을 사용하지 않고 Stack Class를 만들어 구현하는 코드이다.
class Stack { constructor() { this.top = -1; this.bucket = []; } isEmpty() { return this.bucket.length == 0; } push(val) { this.bucket[++this.top] = val; } pop() { if(this.top < 0) { return -1; } else { let popVal = this.bucket[this.top]; this.bucket = this.bucket.slice(0, this.top); this.top--; return popVal; } } peek() { return this.bucket[this.bucket.length-1]; } clear() { this.top = -1; this.bucket = []; } print() { for(let i=0; i<this.bucket.length; i++) { console.log("item[" + i + "] : " + this.bucket[i]); } } }
사용 예
var s = new Stack();
s.push(1);
s.push(2);
s.push(3);
s.push(4);
s.push(5);
s.push(6);
s.print();
console.log(">> pop() : " + s.pop());
console.log(">> pop() : " + s.pop());
console.log(">> pop() : " + s.pop());
console.log(">> pop() : " + s.pop());결과 값
item[0] : 1
item[1] : 2
item[2] : 3
item[3] : 4
item[4] : 5
item[5] : 6
>> pop() : 6
>> pop() : 5
>> pop() : 4
>> pop() : 3
'■ 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로 Queue 구현하기 (0) 2019.05.23