Stack

3. Stack

Stack 의 장단점

  • 장점
  • 구조가 단순해서 구현이 쉬움
  • 데이터 저장/읽기 속도가 빠름
  • 단점 (일반적인 스택 구현시)
  • 데이터 최대 개수를 미리 정해야 함
    • 파이썬의 경우 재귀 함수는 1000번까지만 호출이 가능
  • 저장 공간의 낭비가 발생할 수 있음
    • 미리 최대 개수만큼 저장 공간을 확보해야 하기 때문

- 파이썬 리스트 기능에서 제공하는 메서드로 스택 구현해보기

1
2
3
4
data_stack=list()

data_stack.append(1)
data_stack.append(2)
1
data_stack
1
[1, 2]
1
data_stack.pop()
1
2

- 제공되는 메소드 사용하지 않고 구현

1
2
3
4
5
6
7
8
9
10
stack_list=list()

def push(data):
    stack_list.append(data)
    
def pop():
    #data=stack_list[len(stack_list)-1]  --> "list의 가장 끝 index는 -1 "
    data=stack_list[-1]
    del stack_list[-1]
    return data
1
2
for index in range(10):
    push(index)
1
pop()
1
9

Ref: https://fun-coding.org/