Exemplo n.º 1
0
Arquivo: queue.py Projeto: kubov/akens
class Queue(object):
    def __init__(self):
        self.q1 = Stack()
        self.q2 = Stack()

    def enqueue(self, v):
        self.q1.push(v)

    def empty(self):
        return self.q1.empty() and self.q2.empty()

    def size(self):
        return len(self.q1) + len(self.q2)

    def dequeue(self):
        if self.q2.empty():
            if self.q1.empty():
                return None

            while not self.q1.empty():
                self.q2.push(self.q1.poptop())

        return self.q2.poptop()

    def to_array(self):
        ret = []

        for i in self.q1.data:
            ret.append(i)
        for j in self.q2.data:
            ret.append(j)

        return ret
Exemplo n.º 2
0
class Queue(object):
    def __init__(self):
        self.q1 = Stack()
        self.q2 = Stack()

    def enqueue(self, v):
        self.q1.push(v)

    def empty(self):
        return self.q1.empty() and self.q2.empty()

    def dequeue(self):
        if self.q2.empty():
            if self.q1.empty():
                return None

            while not self.q1.empty():
                self.q2.push(self.q1.poptop())

        return self.q2.poptop()