멤버 container에 list 객체를 생성하여 할당하고(#1), 스택의 push를 리스트의 append(#2), 스택의 pop을 리스트의 pop으로 쉽게 구현합니다(#3). 또한 peek() 메서드를 구현할 때는 인덱스 -1로 리스트의 마지막 요소에 접근해 반환합니다(#4).
테스트 코드를 작성하여 잘 작동하는지 확인해 봅시다.
코드 12-13 stack.py ②
if __name__ = = "__main__": s = Stack() s.push(1) s.push(2) s.push(3) s.push(4) s.push(5) while not s.empty(): data = s.pop() print(data, end = ' ')
실행결과 5 4 3 2 1
1, 2, 3, 4, 5의 순서로 푸시했으므로 팝할 때는 맨 마지막에 추가한 5부터 차례대로 5, 4, 3, 2, 1을 가져옵니다.