Stack
stack
나중에 들어간 것이 먼저 나오는 구조
선입후출, LIFO, last in first out
입구와 출구가 동일한 형태로 스택을 시각화
예) 박스쌓기, 접시쌓기 등
예시
그래프의 깊이 우선 탐색(DFS)에서 사용한다.
시스템 해킹에서 버퍼오버플로우 취약점을 이용한 공격을 할 때, 스택 메모리의 영역에서 한다.
컴퓨터 사칙연산 계산에서 후위표기법
인터럽트처리, 수식의 계산, 서브루틴의 복귀 번지 저장 등에 쓰인다.
백트래킹, 인터넷 사용기록 보관
브라우저의 뒤로가기
실행취소
재귀함수
역순문자열 - 문자열 거꾸로 뒤집기
장단점
top 를 통해 접근해서 데이터 접근, 삽입, 삭제가 빠르다.
top 위치 이외의 데이터에 접근할 수 없다. 그래서 탐색에는 모든 요소를 꺼내서 진행해야한다.
시간 복잡도
삽입과 삭제 : O(1)
탐색 : O(n)
구현
java.util.Stack
import 하면 바로 사용 가능함
지원 매소드
push : 삽입
peek : 최상단 원소 출력
isEmpty, empty : 스택이 비어있다면 true, 아니면 false
pop : 삭제
예시
Last updated