[Data Structure] Stack

Fraise_KIM·2023년 7월 10일
0

1️⃣ Stack 이란?


  • LIFO (Last in, First out) / FILO (First in, Last out)
    cf) Queue - FIFO

  • 활용
    • 컴퓨터 내부의 프로세스 함수 동작 방식
    • Process Stack cf) 재귀 1000번까지 호출 가능
      # 재귀함수
      def recursion(n):
          if n < 0:
              print("========")
          else:
              print(n)
              recursive(n-1)
              print("return", n)
      
      recursive(3)
      DataProcess
      -1recursion(-1)
      0recursion(0)
      1recursion(1)
      2recursion(2)
      3recursion(3)


  • push() : 데이터 넣기
  • pop() : 데이터 꺼내기

  • 장점
    • 데이트의 저장 및 읽기 속도가 빠르다.
    • 단순한 구조이기 때문에 구현이 쉽다.
  • 단점
    • 일반적으로 데이터의 최대 개수를 지정해야 한다.
    • 미리 저장 공간을 확보하므로, 저장 공간이 낭비될 수 있다.



2️⃣ 파이썬에서의 스택 (리스트 활용)

stack_list = list()

stack_list.append("season1")
stack_list.append("season2")

stack_list           # 출력 : ['season1', 'season2']

stack_list.pop()     # 출력 : 'season2'

stack = list()

def push(x):
    stack.append(x)

def pop():
    x = stack[-1]
    del stack[-1]
    return x

for i in range(1, 6):
    push(i)

pop()  # 출력 : 5



사진 출처 : https://yoongrammer.tistory.com/45

0개의 댓글