[자료구조] 스택(Stack) 이해하기

Hoojeong Kim·2022년 3월 2일
0

Data Structure

목록 보기
2/3
post-thumbnail

스택(Stack)

스택은 가장 마지막에 넣은 데이터를 가장 먼저 꺼낼 수 있는 구조이다.

  • LIFO(Last-In, First-Out) 또는 FILO(First-In, Lastt-Out) 방식을 갖는다.
  • LILO 또는 FIFO 방식을 갖는 큐와 반대이다.

스택의 주요 기능은 다음과 같다.

  • push() : 데이터를 스택에 넣는다.
  • pop() : 데이터를 스택에서 꺼낸다.

스택은 바닥에 책을 쌓는 과정과 유사하다. 때문에 push와 pop 모두 가장 위에서 일어난다. 이때 가장 마지막에 넣은 원소가 있는 위치(맨 위)를 top이라고 부른다.


스택 사용하기

data_stack = list()

스택은 list를 사용해 구현한다. (큐도 똑같이 list를 사용하여 구현할 수 있지만, queue 모듈이 따로 존재하기 때문에 모르는 사람만 바보다!)

data_stack.append(1)
data_stack.append(2)

print(data_stack)
[1.2]

요소의 추가는 append 함수를 사용한다.

data_stack.pop()
2

list의 pop 함수를 사용하면 가장 마지막에 추가한 요소를 꺼낼 수 있다.

del data_stack[-1]
1

pop함수를 사용하지 않고 마지막 요소를 제거한다면
del 키워드를 사용해 지울 수 있다. 리스트 인덱스에 -를 붙이게 되면 뒤에서부터 시작한다는 의미를 갖는다. 따라서 인덱스 -1은 가장 마지막 요소를 가리키게 된다.

profile
나 애기 개발자 👶🏻

0개의 댓글