스택이란
- 데이터를 제한적으로 접근할 수 있는 구조
- 한 쪽에서만 데이터를 put(넣기), pop(빼기)할 수 있는 구조
- 가장 마지막에 들어온 데이터가 가장 먼저 나가는 구조
스택구조
- 스택은 LIFO(Last-In, First-out) , FILO(First-In, Last-out) 데이터 관리 방식을 이용
- LIFO : 마지막에 넣은 데이터가 가장 먼저 나감
- FILO : 처음 넣은 데이턱 가장 나중에 나감
- 주요기능
- push() : 데이터를 스택에 삽입
- pop() : 데이터를 스택에서 추출
https://ja.m.wikipedia.org/wiki/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:Lifo_stack.png
스택의 장점과 단점
- 장점
- 구조가 단순, 구현이 쉽다.
- 데이터의 저장/읽기 속도가 빠름
- 단점
- 데이터 크기를 미리 지정해야한다.
- 위와 같은 이유로 인해 저장공간이 낭비가 발생할 수 있다.
파이썬 pop() 함수를 사용해서 스택
파이썬 함수 사용하지 않고 직접 스택 구현
dataList = list()
def push(data):
dataList.append(data)
def pop():
if len(dataList) > 0:
del dataList[-1] //파이썬에서 -1 하면 맨 끝 인덱스
else:
print("underflow")
while(1):
select = input("1. push , 2. pop : ")
if select == "1":
data = input("input data : ")
push(data)
print(f"stack : {dataList}")
elif select == "2":
pop()
print(dataList)
else:
break