파이썬 스택의 최대 크기 지정


여기에 스택의 최대 크기를 지정할 수 있는 함수를 만들고 싶은데 어떻게 하면 되나요?

class MyStack:
    def __init__(self):
        self.myList = []
        self.top = -1
        self.size = 0

    def isEmpty(self):
        if (self.size > 0):
            return False
        else:
            return True

    def push(self, item):
        self.myList.append(item)
        self.size = self.size + 1
        self.top = self.top + 1

    def pop(self):
        if self.isEmpty():
            return None
        else:
            self.ret = self.myList.pop(self.top)
            self.size = self.top - 1
            self.top = self.top - 1
            return self.ret

    def peek(self):
        if self.isEmpty():
            return None
        else:
            return self.myList[self.top]
  • 2018년 04월 12일에 작성됨

조회수 109


Banner nodejs

1 답변


좋아요
2
싫어요
채택취소하기

__init__에서 크기를 지정하게 해서 짜 보았습니다.

class MyStack:
    def __init__(self, max_size):
        self.myList = []
        self.top = -1
        self.size = 0
        self.max_size = max_size

    def isEmpty(self):
        if self.size > 0:
            return False
        else:
            return True

    def push(self, item):
        if self.max_size < self.size:
            self.myList.append(item)
            self.size = self.size + 1
            self.top = self.top + 1
        else:
            raise ValueError('max size limit exceeded')

    def pop(self):
        if self.isEmpty():
            return None
        else:
            self.ret = self.myList.pop(self.top)
            self.size = self.top - 1
            self.top = self.top - 1
            return self.ret

    def peek(self):
        if self.isEmpty():
            return None
        else:
            return self.myList[self.top]

크기제한에 걸리면 ValueError를 냅니다.

  • 2018년 04월 12일에 작성됨
    코딩 좀 하는 중딩입니다. 저를 프로그래머로 채용하실 생각이 있으시면 꼭 연락주세요.

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close