본문 바로가기
프로그래밍/자료구조와 알고리즘

[자료구조] 스택(Stack)

by 소꿍 2021. 3. 4.

LIFO(Last In First Out) 방식

가장 나중에 넣은 데이터를 가장 먼저 빼내는 자료구조

 

스택은 한 쪽에서만 자료를 넣거나 빼는 구조이다.

 

push()를 통해 데이터를 스택에 넣고,

pop()으로 스택에서 데이터를 꺼낸다.

출처: 人CoDOM, http://www.incodom.kr/%EC%8A%A4%ED%83%9D

 

# Python 리스트의 메소드로 스택 사용
list_stack = list()

# append로 push
list_stack.append(1)
list_stack.append(2)

list_stack
>> [1, 2]

# 나중에 넣은 데이터 먼저 출력
list_stack.pop()
>> 2

 

스택은 프로세스 실행 구조의 기본이 된다.

 

  • 장점: 구조가 단순해 구현이 쉽고, 데이터 저장/읽기 속도가 빠르다.
  • 단점: 스택 생성 시 데이터 최대 개수를 정해야 한다.

           저장 공간이 낭비될 수 있다.(미리 최대 개수만큼 저장 공간을 확보해야 하기 때문)

스택은 단순하고 빠른 성능을 위해 사용하기 때문에 보통 배열 구조를 활용해 구현하는데, 이 경우 위와 같은 단점이 있을 수 있다.

댓글