Ejemplo n.º 1
0
 def test_queue_size(self):
     que = Queue()
     random_values = get_random_values()
     for i, v in enumerate(random_values):
         que.push(v)
         self.assertEqual(que.size(), i + 1)
     for i in range(len(random_values)):
         que.pop()
         self.assertEqual(que.size(), len(random_values) - i - 1)
Ejemplo n.º 2
0
 def test_queue_init(self):
     que = Queue()
     self.assertEqual(que.size(), 0)
     self.assertEqual(que.is_empty(), True)
     with self.assertRaises(IndexError):
         que.pop()
     with self.assertRaises(IndexError):
         que.peek()
Ejemplo n.º 3
0
def hot_potato(name_list, num):
    q = Queue()

    for i in range(len(name_list)):
        q.enqueue(name_list[i])

    while num > 0 :
        if q.size() > 1:
            for i in range(num):
                q.enqueue(q.dequeue())
            q.dequeue()

        if q.size() == 1:
            remaining_person = q.dequeue()
            break    

    return remaining_person
Ejemplo n.º 4
0
 def test_queue_copy(self):
     que = Queue()
     random_values = get_random_values()
     for v in random_values:
         que.push(v)
     copied_que = que.copy()
     for v in random_values:
         self.assertEqual(copied_que.peek(), v)
         copied_que.pop()
     self.assertEqual(que.size(), len(random_values))
Ejemplo n.º 5
0
 def test_queue_reversed(self):
     que = Queue()
     random_values = get_random_values()
     for v in random_values:
         que.push(v)
     reversed_queue = reversed(que)
     for v in random_values[::-1]:
         self.assertEqual(reversed_queue.peek(), v)
         reversed_queue.pop()
     self.assertEqual(que.size(), len(random_values))
Ejemplo n.º 6
0
def hot_potato(namelist, num):
    q = Queue()
    for name in namelist:
        q.enqueue(name)

    while q.size() > 1:
        for i in range(num):
            q.enqueue(q.dequeue())

        q.dequeue()

    return q.dequeue()
Ejemplo n.º 7
0
def hot_potato(name_list, num):
    # Finish the function
    q = Queue()
    for i in name_list:
        q.enqueue(i)
    while q.size() > 1:
        for _ in range(num):
            tmp = q.dequeue()
            q.enqueue(tmp)
        q.dequeue()
    remaining_person = q.dequeue()

    return remaining_person
Ejemplo n.º 8
0
    def test_queue_reversed_with_override(self):
        self.assertEqual(list(reversed([123, 456])), [456, 123])

        que = Queue()
        random_values = get_random_values()
        for v in random_values:
            que.push(v)
        reversed_queue = reversed(que)
        for v in random_values[::-1]:
            self.assertEqual(reversed_queue.peek(), v)
            reversed_queue.pop()
        self.assertEqual(que.size(), len(random_values))

        self.assertEqual(list(reversed([123, 456])), [456, 123])
Ejemplo n.º 9
0
def hot_potato(name_list, num):
    q = Queue()
    for name in name_list:
        q.enqueue(name)

    while q.size() > 1:
        for j in range(num):
            person = q.dequeue()
            q.enqueue(person)
        q.dequeue()

    remaining_person = q.dequeue()

    return remaining_person
Ejemplo n.º 10
0
def bfs(g, start):
    start.setDistance(0)
    start.setPred(None)
    vertQueue = Queue()
    vertQueue.enqueue(start)
    while (vertQueue.size() > 0):
        currentVert = vertQueue.dequeue()
        for nbr in currentVert.getConnections():
            if (nbr.getColor() == 'white'):
                nbr.setColor('gray')
                nbr.setDistance(currentVert.getDistance() + 1)
                nbr.setPred(currentVert)
                vertQueue.enqueue(nbr)
        currentVert.setColor('black')