대기열과 창고. - 두 개의 대기열로 창고를 실현합니다.

문서 목록

  • 제목설명
  • 분석
  • 코드
  • 제목 설명


    두 개의 대열로 하나의 창고를 실현하다.
    두 개의 창고로 하나의 대열을 실현할 것을 생각하다.
    두 창고가 하나의 대열을 실현하다

    분석하다.

  • 대기열 1:queue1
  • 대기열 2:queue2
  • 입고 작업: 원소 입공 대기열 1
  • 출고 작업:
  • 대기열 1에 원소가 하나만 있으면 바로 줄을 나간다고 판단한다.
  • 그렇지 않으면 팀 1의 원소를 팀에서 내보내고 팀 2에 들어가 팀 1에 원소가 하나만 있을 때까지 바로 팀에서 나간다.
  • 다음 작업을 위해 팀 1과 팀 2를 교환한다.


  • 코드

    class Stock:
        def __init__(self):
            self.queue1=[]
            self.queue2=[]
        def push(self, node):
            self.queue1.append(node)
        def pop(self):
            if len(self.queue1)==0:
                return None
            while len(self.queue1)!=1:
                self.queue2.append(self.queue1.pop(0))
            self.queue1,self.queue2=self.queue2,self.queue1 #         pop
            return self.queue2.pop()
    

    좋은 웹페이지 즐겨찾기