
스택 구조
- 스택은 한 쪽 끝에서만 데이터를 넣거나 뺄 수 있는 선형 구조로 되어 있다.
후입선출(LIFO = Last In Firist Out) 구조로 나중에 넣은 데이터가 먼저 나온다.
스택 장단점
- 장점
- 구조가 단순해서 구현이 쉽다.
- 데이터 저장/읽기 속도가 빠르다
- 단점
- 데이터 최대 개수를 미리 정해야 한다.
- 저장공간의 낭비가 발생할 수 있다.
스택 용어
push
: 데이터를 스택에 넣는다.
pop
: 스택에서 데이터를 꺼낸다.
스택 활용 예시
- 후입선출(LIFO)을 활용하여 여러 분야에서 사용한다.
- 웹 브라우저 방문기록(뒤로가기)
- 수식의 괄호 검사
- 실행 취소(undo)
Python
- 파이썬에서는 리스트를 사용하여 스택을 구현한다.
append()
를 통해서 데이터를 넣는다.
pop()
을 통해서 데이터를 반환한다.
data_stack = list()
for i in range(1, 6):
data_stack.append(i)
print(data_stack)
data_stack.pop()
print(data_stack)
Java
- Stack 클래스를 제공한다.
Stack<Integer> data_stack = new Stack<>();
push()
: 데이터를 스택에 넣는다.
pop()
: 스택에서 마지막에 넣은 데이터를 반환하고, 값을 삭제한다.