코딩고치

[파이썬][자료구조] 스택 (Stack) 본문

파이썬/자료구조

[파이썬][자료구조] 스택 (Stack)

코딩고치 2020. 4. 15. 07:57

스택

  • 데이터를 제한적으로 접근할 수 있는 구조이다.
    • 한쪽 끝에서만 데이터를 넣고 뺄 수 있다.
      가장 마지막에 넣은 데이터를 가장 먼저 출력한다.
    • 큐 : FIFO, 스택 : LIFO (Last-In, First-out)

스택 구조

  • LIFO 구조
    주로 프로세스의 함수 동작 방식에 주로 사용된다.
  • 기능
    push() : 데이터 넣기, pop() : 데이터 꺼내기

장단점

  • 장점
    • 구조가 단순하고 구현이 쉽다.
    • 읽고 쓰는 속도가 빠르다.
  • 단점
    • 최대 개수를 미리 정해야 한다.
      • 파이썬에서는 재귀 함수는 1000개로 제한되어있다.
    • 저장 공간의 낭비 가능성
      • 미리 최대 개수만큼 저장 공간을 지정해야 한다.
item_stack = list()
item_stack.append("Estus Flask")
item_stack.append("Ashen Estus Flask")
item_stack.append("Estus Shard")
item_stack
['Estus Flask', 'Ashen Estus Flask', 'Estus Shard']
item_stack.pop()
'Estus Shard'

가장 마지막에 입력한 데이터가 출력된다.

item_stack
['Estus Flask', 'Ashen Estus Flask']

출력된 후 stack에서 제거가 된다.

item_stack.pop()
'Ashen Estus Flask'
item_stack
['Estus Flask']
item_stack.pop()
'Estus Flask'
Comments