본문 바로가기

Developer/Python

[Python] Stack 구현하기

Stack

stack은 LIFO(Last In, First Out) 또는 FILO(First In, Last Out) 데이터 관리 방식

컴퓨터 내부의 프로세스 구조의 함수 동작 방식이다.

 

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

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

 

장점

  • 구조가 단순하고 구현이 쉽다.
  • 데이터 저장/읽기 속도가 빠르다.

단점

  • 데이터 최대 개수를 미리 정해야한다. (파이썬의 경우 최대 1000번까지만 호출 가능)
  • 저장 공간의 낭비 발생
    • 미리 최대 개수만큼 저장 공간을 확보해야되기 때문

 

파이썬에서는 리스트로 스택을 구현함.

data_stack = list()

# append 메소드 사용
data_stack.append(1)
data_stack.append(2)
data_stack.append(3)

print(data_stack) # 1 2 3

# pop 메소드 사용
data_stack.pop() # 3
print(data_stack) # 1 2

 

함수로 push, pop 구현하기

stack = list()

# stack push 구현하기
def push(data):
    stack.append(data)


# stack pop 구현하기
def pop():
    data = stack[-1]
    del stack[-1]
    return data
    

for index in range(10):
    push(index)
    
pop() # 9