1. 스택
- 맨 마지막 위치(top)에서만 자료를 추가, 삭제, 꺼내 올 수 있음 → (중간의 자료를 직접 꺼낼 수 없음)
- LIFO (Last In First Out, 후입선출) 구조
- 택배 상자를 쌓아놓은 모양과 유사
- 가장 최근의 자료를 찾아오거나, 게임에서 히스토리(undo 등)를 유지하고 되돌릴 때 사용할 수 있음
- 함수의 메모리는 호출 순서에 따라 스택(stack) 구조로 관리됨
2. 스택의 메서드
- push():
- top 위치에 새로운 자료를 넣는 연산
- pop():
- top 위치에서 자료를 꺼내오는 연산
- peek():
- top에 있는 자료를 확인하는 연산(자료를 꺼내지는 않음)
public interface StackInterface<E> {
public void push(E newItem);
public E pop();
public E peek();
public boolean isEmpty();
public void popAll();
}
public class MyArrayStack<E> extends MyArrayList<E> implements StackInterface<E> {
MyArrayList<E> list;
public MyArrayStack() {
list = new MyArrayList<>();
}
public MyArrayStack(int size) {
super(size);
}
@Override
public void push(E newItem) {
list.addElement(newItem);
}
@Override
public E pop() {
return list.removeElement(list.getSize() - 1);
}
@Override
public E peek() {
return list.getElement(list.getSize() - 1);
}
public boolean isEmpty() {
return list.isEmpty();
}
@Override
public void popAll() {
while (!list.isEmpty()) {
System.out.print(list.removeElement(list.getSize() - 1));
}
}
}
'알고리즘' 카테고리의 다른 글
7. 재귀 호출 - 패스트캠퍼스 백엔드 부트캠프 3기 (0) | 2025.01.25 |
---|---|
6. 큐(Queue) - 패스트캠퍼스 백엔드 부트캠프 3기 (0) | 2025.01.23 |
4. 연결 리스트 - 패스트캠퍼스 백엔드 부트캠프 3기 (2) | 2025.01.22 |
3. n배열 리스트 - 패스트캠퍼스 백엔드 부트캠프 3기 (0) | 2025.01.22 |
2. 기본적인 자료구조 리스트 - 패스트캠퍼스 백엔드 부트캠프 3기 (0) | 2025.01.21 |