Python 자료구조 - 스택 Stack

기준맨·2023년 2월 22일

Python 자료구조

스택 Stack

  • 데이터를 제한적으로 접근할 수 있는 구조

    • 한쪽 끝에서만 자료를 넣거나 뺄 수 있는 구조
  • 가장 나중에 쌓은 데이터를 가장 먼저 빼낼 수 있는 데이터 구조

    • 스택 : LIFO
    • 큐 : FIFO
  • 장점

    • 구조가 단순해서 구현이 쉬움
    • 데이터 저장/읽기 속도가 빠름
  • 단점 (일반적인 스택의 경우)

    • 데이터 최대 갯수를 미리 정해야 함
      • 파이썬의 경우 재귀 함수는 1000번까지 호출이 가능
    • 저장 공간의 낭비가 발생할 수 있음
      • 미리 최대 갯수만큼 저장 공간을 확보해야함

구조

  • 스택은 LIFO(Last-In, First-Out) 또는 FILO(First-In, Last-out) 데이터 관리 방식

  • 대표적인 스택의 활용

    • 컴퓨터 내부의 프로세스 구조의 함수 동작 방식
  • 주요 기능

    • push() : 데이터를 스택에 넣기

    • pop() : 데이터를 스택에서 꺼내기

참고

Python 기본 메서드

append(push)

data = []

data.append(1)
data.append(2)

data
>>> [1,2]

pop

data.pop()
>>> 2

data
>>> [1]

연습

  • 리스트 변수로 스택을 다루는 pop, push 기능 구현
stack_list = []

def push(data):
	stack_list.append(data)

def pop():
	data = stack_list[-1]
    del stack_list[-1]
    return data

0개의 댓글