void push(E e) // 삽입
E pop() // 삭제 및 반환
E peek() // 조회 (삭제 없음)
boolean isEmpty() // 비어있는지 확인
- 연결리스트(DLinkedList) 기반 스택
- LIFO (Last In First Out)
public class DLLStack<E> extends DLinkedList<E> {
public void push(E e) {
add(e); // 끝에 추가
}
public E pop() {
return remove(size() - 1); // 끝에서 제거
}
public E peek() {
return get(size() - 1); // 끝 조회
}
}
- 여는 괄호: push
- 닫는 괄호: pop 후 짝 비교
- 스택이 비어있으면 유효
중위: 3 + 2 * 4
후위: 3 2 4 * +
- 피연산자: 바로 출력
- 연산자: 우선순위 비교 후 push/pop
324*+ 계산:
1. 3 push
2. 2 push
3. 4 push
4. * → pop 2개 (4,2) → 8 push
5. + → pop 2개 (8,3) → 11 push
결과: 11
| 연산 |
복잡도 |
| push |
O(1) |
| pop |
O(1) |
| peek |
O(1) |