더북(TheBook)

이 문제를 해결하고자 스택의 내부 표현은 동적 배열로 하고 연산 구현은 리스트의 함수를 래핑(wrapping)하는 방법으로 추상화해 보겠습니다.

코드 5-1 stack.py

class Stack:
    def __init__(self):
        self.container = list() 

    def empty(self):
        if not self.container:
            return True
        else:
            return False

    def push(self, data):
        self.container.append(data) 

    def pop(self):
        if self.empty():
            return None
        return self.container.pop()

    def peek(self):
        if self.empty():
            return None
        return self.container[-1]

내부 표현(representation): 실제로 데이터를 담을 객체는 동적 배열

맨 마지막 요소가 top: 동적 배열의 맨 마지막에 요소를 추가하는 것은 스택의 top에 요소를 추가하는 것과 같습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.