D E V E L O P E R 💻/Today I Learned
자료구조 - Stack 알아보기
dj-1087
2021. 11. 20. 16:11
반응형
Stack - 스택
LIFO(Last In First Out)
마지막에 넣은 데이터가 가장 먼저 나오는 구조로 데이터를 저장하는 형식*컴퓨터 내부의 프로세스 구조의 함수 동작 방식
장점과 단점
장점
- 데이터의 빠른 입력/추출
단점
- 맨 위(뒤)의 데이터만 접근 가능
시간 복잡도
- 데이터 입력/추출: O(1)
스택 기능
- push: 마지막 순번으로 데이터 입력
- pop: 마지막 데이터 추출
코드 구현
stack_list = list()
def push(data):
stack_list.append(data)
def pop():
data = stack_list[-1]
del stack_list[-1]
return data
Test - push()
for i in range(10):
push(i)
print("stack size:", len(stack_list))
print("stack data:", stack_list)
stack size: 10
stack data: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Test - pop()
data = pop()
print("pop data:", data)
print("stack size:", len(stack_list))
print("stack data:", stack_list)
pop data: 9
stack size: 9
stack data: [0, 1, 2, 3, 4, 5, 6, 7, 8]
+ 파이썬 리스트의 내장 함수를 사용할 경우
# init stack
stack_list = list()
print("Initialize stack")
print("stack size:", len(stack_list))
print()
# push()
for i in range(10,0,-1):
stack_list.append(i)
print("After Push")
print("stack size:", len(stack_list))
print()
# pop
data = stack_list.pop()
print("After Pop")
print("pop data:", data)
print("stack size:", len(stack_list))
Initialize stack
stack size: 0
After Push
stack size: 10
After Pop
pop data: 1
stack size: 9
참고 자료
반응형