CS/Python
파이썬으로 스택 구현하기
munsik22
2025. 3. 25. 11:43
코드 전문은 Do it! 자료구조와 함께 배우는 알고리즘 입문 파이썬 편에서 확인할 수 있다.
class FixedStack:
def __init__(self, maxlen = 256):
self.capacity = maxlen
self.__stk = []
def __len__(self):
return len(self.__stk)
def is_empty(self):
return not self.__stk
def is_full(self):
return len(self.__stk) == self.__stk.maxlen
def push(self, value):
if self.is_full():
raise OverflowError
self.__stk.append(value)
def pop(self):
if self.is_empty():
raise IndexError
return self.__stk.pop()
def peek(self):
if self.is_empty():
raise IndexError
return self.__stk[-1]
def clear(self):
self.__stk.clear()
def find(self, value):
try:
return self.__stk.index(value)
except:
return -1
def count(self, value):
return self.__stk.count(value)
def __contains__(self, value):
return self.count(value)
def dump(self):
print(list(self.__stk))
리스트 대신 deque를 사용해서 최대길이를 deque([], maxlen)으로 지정한다면, 이후 함수들에서 따로 예외 처리 구문을 추가할 필요는 없다.