
나중에 넣은 데이터가 먼저 나오는 LIFO Last In First Out 기반의 선형 자료 구조
Ctrl + Z배열 -> 데이터의 양 많음, 삽입 삭제 거의 없음, 데이터 접근이 자주 일어남
스택 -> 삽입 삭제 빈번, 데이터 접근이 거의 없을 때 사용함
class Stack {
constructor() {
this.items = [];
}
getBuffer() {
return this.items.slice(); // 데이터 전체 반환
}
isEmpty() {
return this.items.length === 0; // 비어 있는지 확인
}
push(element) {
this.items.push(element); // 추가
}
pop() {
return this.items.pop(); // 삭제
}
front() {
return this.items[0]; // 첫번째 데이터 조회
}
peak() {
return this.items[this.items.length - 1]; // 마지막 데이터 조회
}
size() {
return this.items.length; // 크기 확인 (잘 안씀)
}
length() {
return this.items.length; // 길이 확인
}
indexOf(element) {
return this.items.indexOf(element); // 데이터 위치 확인
}
includes(element) {
return this.items.includes(element); // 존재 여부 확인
}
clear() {
this.items = []; // 전체 삭제
}
// 추가적인 메서드
// ...
// isFull() 메서드 (크기가 고정된 경우에만 유효)
isFull() {
// 구현 방법은 스택의 현재 크기와 최대 크기를 비교하여 결정될 수 있음
// 이 예제에서는 동적으로 크기가 조정되기 때문에 항상 false를 반환
return false;
}
}
push, pop, slice, length 등의 내장 메서드를 이용하여 기능을 구현할 수 있다.
먼저 넣은 데이터가 먼저 나오는 FIFO First In First Out 기반의 선형 자료 구조