stack (선입후출 or 후입선출)
- 스택은 가장 나중에 들어온 자료가 가장 먼저 처리되는 LIFO(Last-In-First-Out) 자료구조
사용법
1. push(삽입) : 아래 그림과 같이 데이터을 집어 넣는 것으로 먼저 들어온 값 차례대로 삽입
2. pop(삭제) : push와 반대로 값을 삭제
3. top(), peek(읽기, 확인) : 위치에 해당하는 데이터를 읽음, 값에 변화는 없음

구현
# colab
# 값 추가하는 함수 생성
def push(stack, element):
stack.append(element)
# 맨 뒤부터 값을 빼는 함수 생성
def pop(stack):
print(f'pop: {stack.pop()}')
# 값을 확인하는 함수
def peek(stack):
print("peek value: {}".format(stack[-1]))
# 값이 비어있는지 확인하는 함수 생성
def is_empty(stack):
if len(stack) != 0:
print(f'empty? {False}')
else:
print(f'empty? {True}')
if __name__ == '__main__':
stack_1 = []
push(stack_1,1)
push(stack_1,3)
push(stack_1,5)
print(f'push result:{stack_1}')
is_empty(stack_1)
peek(stack_1)
pop(stack_1)
pop(stack_1)
pop(stack_1)
is_empty(stack_1)
더보기
[결과]
push result:[1, 3, 5]
empty? False
peek value: 5
pop: 5
pop: 3
pop: 1
empty? TrueFalse
[1, 2, 3]
peek value: 3
3
2
1
True
'자료구조 & 알고리즘 > 이론' 카테고리의 다른 글
[알고리즘] 정렬 알고리즘 (0) | 2022.09.07 |
---|---|
[자료구조] 큐(queue) 파이썬으로 구현하기 (0) | 2022.04.08 |
[자료구조] 자료구조의 정의 & 분류 (0) | 2022.04.08 |
[자료구조] 빅오(Big-O)표기법 (0) | 2022.04.07 |
[자료구조 & 알고리즘] 시각화 사이트 (0) | 2022.04.07 |
댓글