[Algorithm] 스택

Elen li·2021년 11월 20일
0

스택 (Stack)

: 가장 나중에 쌓은 데이터를 가장 먼저 빼낼 수 있는 데이터 구조
: FILO (First In Last Out) / LIFO (Last In First Out)

스택 용어

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

스택 구조와 프로세스 스택

: 스택 구조는 프로세스 실행 구조의 가장 기본
<재귀 함수>

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

<결과값>

4
3
2
1
0
ended
returned 0
returned 1
returned 2
returned 3
returned 4

스택의 장단점

장점

  1. 구조가 단순해서 구현이 쉽다.
  2. 데이터 저장/읽기 속도가 빠르다.

단점 (일반 스택 구조 시)

  1. 데이터 최대 개수를 미리 정해야 한다.
    (파이썬의 경우 재귀 함수는 1000번까지만 호출이 가능함)
  2. 저장 공간의 낭비가 발행할 수 있음
    (미리 최대 개수만큼 저장 공간을 지정해야 함)

파이썬 리스트에서 제공하는 메서드로 스택 사용해보기

profile
Android, Flutter 앱 개발자입니다.

0개의 댓글