스택이란 한 쪽 끝에서만 자료를 넣고 뺄 수 있는 LIFO(Last In First Out) 형식의 자료구조를 말한다.
스택은 LIFO 형식을 따른다. 따라서 가장 최근에 스택에 추가한 항목이 가장 먼저 제거된다.
배열의 경우 데이터의 양이 많지만 삽입/삭제가 거의 없고 데이터의 접근이 자주 일어날때 사용하면 좋고 반대로 연결 리스트의 경우 삽입/삭제가 빈번히 이뤄지고, 데이터의 접근이 거의 없을때 사용하는것이 좋다.
<script>
class Stack {
constructor() {
this.count = 0;
this.storage = [];
}
push(item) {
this.storage[this.count] = item;
this.count++;
}
pop() {
if (this.count === 0) {
return undefined;
}
this.count--;
var result = this.storage[this.count];
delete this.storage[this.count];
return result;
}
peek() {
if (this.count === 0) {
return "stack is empty";
}
return this.storage[this.count - 1];
}
isEmpty(){
return this.count==0?true:false;
}
length() {
return this.count;
}
getBuffer() {
return this.storage;
}
}
</script>
댓글 영역