스택(Stack)이란?
- 데이터를 제한적으로 접근할 수 있는 구조이다.
- 한 쪽 끝에서만 자료를 넣거나 뺄 수 있다.
- 가장 나중에 쌓은 데이터를 가장 먼저 빼낼 수 있는 데이터 구조이다.(LIFO)
구조
- 스택은 LIFO(Last In, Fisrt Out) 또는 FILO(First In, Last Out) 데이터 관리 방식을 따른다.
대표적 스택의 활용
- 컴퓨터 내부의 프로세스 구조의 함수 동작 방식에서 사용된다.
기능
push()
: 데이터를 스택에 넣는다.pop()
: 데이터를 스택에서 꺼낸다.
프로세스 스택
- 스택 구조는 프로세스 실행 구조의 가장 기본이 된다.
- 함수 호출 시 프로세스 실행 구조를 스택과 비교해서 이해할 필요가 있다.
1 |
|
장단점
장점
- 구조가 단순해서 구현이 쉽다.
- 데이터 저장 및 읽기의 속도가 빠르다.
단점
- 데이터 최대 갯수를 미리 정해야한다.
- 파이썬의 경우 재귀 함수는 1000번까지만 호출이 가능하다.
- 저장 공간의 낭비가 발생할 수 있다.
- 미리 최대 갯수만큼 저장 공간을 확보해야한다.
스택은 단순하고 빠른 성능을 위해 사용되므로 보통 배열 구조를 활용하여 구현하는 것이 일반적이다. 이 경우, 위에서 열거한 단점이 있을 수 있다.
메소드
1 |
|
리스트로 구현
1 |
|