스택 (Stack)
개념
- 한쪽 끝에서만 데이터를 넣거나 뺼 수 있는 구조 (큐와 비슷함)
- (중요) 가장 나중에 넣은 데이터를 가장 먼저 빼낼 수 있는 데이터 구조
- ex) 책을 쌓는 구조 - 책을 맨위에 쌓고, 맨위에 있는 책을 꺼낸다.
1. 스택 활용 및 기능
- 대표적인 스택의 활용
- 컴퓨터 내부 프로세스의 함수 동작 방식에 많이 쓰임(구조가 단순하여 저장/읽기 속도가 빠르기 때문)
- 주요 기능
- push(): 데이터를 넣기
- pop(): 데이터를 꺼내기
2. 스택의 장단점
장점
- 구조가 단순하여 구현이 쉽다
- 데이터 read/write 속도가 빠르다
단점
- 데이터 최대 개수를 미리 정해야 된다.
- 파이썬의 경우 재귀 함수는 1000번까지만 호출 가능 (그만큼의 저장공간을 미리 확보해논 것임)
- 저장 공간 낭비가 발생할 수 있음 -> 미리 저장 공간 확보 필요