コード例 #1
0
class TwoQueuesStack:
    def __init__(self):
        self.data = ArrayQueue()
        self.helpqueue = ArrayQueue()

    def push(self, pushint):
        self.data.add(pushint)

    def peek(self):
        if self.data.isEmpty():
            raise RuntimeError("Stack is empty")
        while (len(self.data) != 1):
            self.helpqueue.add(self.data.poll())

        res = self.data.poll()
        self.helpqueue.add(res)
        swap()
        return res

    def pop(self):
        if self.data.inEmpty():
            raise RuntimeError("Stack is empty")
        while len(self.data) > 1:
            self.helpqueue.add(self.data.poll())
        res = self.data.poll()
        swap()
        return res

    def swap():
        tmp = self.data
        self.data = self.helpqueue
        self.helpqueue = tmp
コード例 #2
0
class CatDogQueue(object):
    def __init__(self):
        self.dogqueue = ArrayQueue()
        self.catqueue = ArrayQueue()
        self.count = 0
    
    def add(self,pet):
        if pet.get_pettype() == "dog":
            self.count += 1
            petcount = PetCount(pet, self.count)
            self.dogqueue.push(petcount)
        elif pet.get_pettype() == "cat":
            self.count += 1
            petcount = PetCount(pet,self.count)
            self.catqueue.push(petcount)
        else:
            raise RuntimeError("no pet type")
    
    def pollall(self):
        if not self.isCatEmpty() and not self.isDogEmpty():
            if (self.dogqueue.peek().getCount()) < (self.catqueue.peek().getCount()):
                return self.dogqueue.poll()
            else:
                return self.catqueue.poll()
        elif self.isDogEmpty():
            return self.catqueue.poll()
        elif self.isCatEmpty():
            return self.dogqueue.poll()
        else:
            raise RuntimeError("err, queue is empty")
    
    def pollDog(self):
        if not self.isDogEmpty():
            # print(type(self.dogqueue.poll()))
            return  self.dogqueue.poll()
        else:
            raise RuntimeError("Dog queue is empty")

    def pollCat(self):
        if not self.isCatEmpty():
            return self.catqueue.poll()
        else:
            raise RuntimeError("Cat queue is empty")


    def isCatEmpty(self):
        return self.catqueue.isEmpyt()
    
    def isDogEmpty(self):
        return self.dogqueue.isEmpyt()