Animated Rainbow Nyan Cat
본문 바로가기
Algorithm study

CH 06. 스택(Stack)

by SOBONA 2022. 3. 24.
알고리즘 / 기술면접 완전 정복 올인원 패키지 Online.

 

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

- 한쪽 끝에서만 자료를 넣거나 뺄 수 있는 구조

- 가장 나중에 쌓은 데이터를 가장 먼저 빼낼 수 있는 데이터 구조

Stack의 용어

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

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

# 재귀 함수
def recursive(data):
    if data < 0:
        print ("ended")
    else:
        print(data)
        recursive(data - 1)
        print("returned", data)

자료 구조 스택의 장단점

스택은 단순하고 빠른 성능을 위해 사용된다.

- 장점

1. 구조가 단순해 구현이 쉬움

2. 데이터 저장/읽기 속도가 빠름

- 단점

1. 데이터 최대 개수를 미리 정해야 한다.

2. 저장 공간의 낭비가 발생할 수 있다.

 

  • 파이썬 리스트 기능에서 메소드 제공
data_stack = list()

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

data_stack #[1, 2]

data_stack.pop() #2

 

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

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

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