본문 바로가기
자료구조 & 알고리즘/이론

[자료구조] 스택(stack) 파이썬으로 구현하기

by ge_ai 2022. 4. 8.

stack (선입후출 or 후입선출) 

  • 스택은 가장 나중에 들어온 자료가 가장 먼저 처리되는 LIFO(Last-In-First-Out) 자료구조
사용법

1. push(삽입) : 아래 그림과 같이 데이터을 집어 넣는 것으로 먼저 들어온 값 차례대로 삽입

2. pop(삭제) :  push와 반대로 값을 삭제

3. top(), peek(읽기, 확인) : 위치에 해당하는 데이터를 읽음, 값에 변화는 없음

push, pop

 

구현
# 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

댓글