스택(stack)은 자료구조의 일종이다. 마지막 삽입된 항목을 먼저 제거하고 접근하는 자료구조이다 (Last-In-First-Out). 스택은 속도가 빠르다는 점이 장점이다. 마지막 항목이 제거될 것이라는 것을 알기 때문에 찾기와 삽입이 상수 시간 O(1)에 이루어진다. 스택은 알고리즘이 마지막에 추가된 항목만을 접근해야 하는 후입선출 형태의 데이터를 처리하는 경우 사용한다. 스택의 한계는 배열과 달리 마지막에 추가된 항목 외에는 직접 접근할 수 없다는 것이다. 특히, 초바넹 추가된 항목을 접근하기 위해서는 이후에 추가된 항목들을 자료 구조로부터 제거해야 한다.
function Stack(array) {
this.array = [];
if (array) {
this.array = array;
}
}
Stack.prototype.getBuffer = function() {
// 배열복사
return this.array.slice();
}
Stack.prototype.isEmpty = function() {
// 안에 값이 있는지 없는지 확인
return this.array.length === 0;
}
Stack.prototype.peek = function() {
// 가장 마지막 값이 무엇인가?
return this.array[this.array.length - 1];
}
Stack.prototype.push = function(value) {
// 값 추가하기
this.array.push(value);
}
Stack.prototype.delete = function() {
// 값 제거하기
this.array.pop();
}