1. 스택 구조
- 한쪽 끝에서만 자료를 넣거나 뺄 수 있는 구조 (데이터를 제한적으로 접근할 수 있음)
- LIFO(Last-In/First-Out) 구조 : 가장 마지막에 넣은 데이터를 가장 먼저 꺼낼 수 있는 구조
- FILO 구조
* 큐(Queue)와 차이 : 큐 - FIFO구조 / 스택 - LIFO구조
2. 스택 특징
- 스택 활용 : 컴퓨터 내부의 프로세스 구조의 함수 동작 방식
- 장점 :
1) 구조가 단순하여 구현이 쉬움
2) 데이터 저장/읽기 속도가 빠름
1) 데이터 최대 갯수를 미리 정해야함
2) 저장공간 낭비 발생 가능성 있음
- 스택은 단순하고 빠른 성능을 위해 사용됨. 보통 배열 구조를 활용해서 구현하는 것이 일반적. 이 경우, 위의 단점들이 발생할 수 있음
3. 용어
- push() : 스택에 데이터 넣기
- pop() : 스택에서 데이터 꺼내기
4. 스택 사용
stack = [1,2,3]
# 데이터 넣기
def push(data):
stack.append(data)
# 맨 끝 데이터 추출
def pop():
stack.pop()
# del stack[-1] : pop() 메서드를 사용안 할 경우 del, 맨 끝 인덱스 -1 사용하기.
push(4)
print(stack) # 출력 화면 : [1, 2, 3, 4]
pop()
print(stack) # 출력 화면 : [1, 2, 3] -> pop()으로 인해 마지막에 넣은 4가 추출되었고 [1,2,3]만 남음