Example #1
0
    def test_size(self):
        q = Queue()
        self.assertEqual(q.size(), 0, "The size of empty Queue q is not 0.")

        q.enqueue(4)
        self.assertEqual(
            q.size(), 1,
            "The size of Queue q doesn't expand to 1 after enqueuing element "
            + "4.")

        q.enqueue("dog")
        self.assertEqual(
            q.size(), 2,
            "The size of Queue q doesn't expand to 2 after enqueuing element "
            + "'dog'.")

        q.dequeue()
        self.assertEqual(
            q.size(), 1,
            "The size of Queue q doesn't shrink to 1 after dequeuing once.")

        q.dequeue()
        self.assertEqual(
            q.size(), 0,
            "The size of Queue q doesn't shrink to 0 after dequeuing twice.")
class Stack:
    def __init__(self):
        self.queue1 = Queue()
        self.queue2 = Queue()

    def push(self, value):
        if self.queue1.is_empty() and self.queue2.is_empty():
            self.queue1.enqueue(value)
        elif not self.queue1.is_empty() and self.queue2.is_empty():
            self.queue1.enqueue(value)
        elif self.queue1.is_empty() and not self.queue2.is_empty():
            self.queue2.enqueue(value)
# 不会两个都不空的,因为出栈的操作能够保证肯定至少有一个 queue 是空的

    def pop(self):
        if not self.queue1.is_empty():
            if self.queue1.size() == 1:
                return self.queue1.dequeue()
            else:
                while self.queue1.size() > 1:
                    self.queue2.enqueue(self.queue1.dequeue())
                return self.queue1.dequeue()
        else:
            if not self.queue2.is_empty():
                if self.queue2.size() == 1:
                    return self.queue2.dequeue()
                else:
                    while self.queue2.size() > 1:
                        self.queue1.enqueue(self.queue2.dequeue())
                    return self.queue2.dequeue()
class Test_Queue(unittest.TestCase):
    def setUp(self):
        self.q = Queue()

    def test_init(self):
        self.assertEqual(0, self.q.size())

    def test_is_empty(self):
        self.assertEqual(0, self.q.size())

    def test_enqueue(self):
        self.q.enqueue(3)
        self.assertEqual(1, self.q.size())

    def test_dequeue(self):
        self.q.enqueue(9)
        self.assertEqual(9, self.q.dequeue())

    def test_peek(self):
        self.q.enqueue(2)
        self.q.enqueue(3)
        self.assertEqual(2, self.q.peek())

    def test_size(self):
        self.q.enqueue(1)
        self.q.enqueue(3)
        self.assertEqual(2, self.q.size())
def stack_using_queue():
    q1 = Queue()
    q2 = Queue()
    choice = 1
    while (choice != 0):
        print("1. Push")
        print("2. Pop")
        choice = int(input(">"))

        if choice == 1:
            continue_add = 'y'
            while (continue_add != 'n'):
                q1.enqueue(input("Enter the item: "))
                continue_add = input("Continue (y/n): ")

        elif choice == 2:
            if not q1.isEmpty():
                for k in range(0, q1.size() - 1):
                    q2.enqueue(q1.dequeue())

                print("The popped element is: {}".format(q1.dequeue()))

                for t in range(0, q2.size()):
                    q1.enqueue(q2.dequeue())

            else:
                print("Queue empty")
Example #5
0
def test_queue_dequeue_enqueue():
    """Test ability to enqueue after dequeue."""
    test_case = Queue(TEST_QUEUE_DATA)
    assert test_case.dequeue() == [1, 2, 3, 4, 5]
    assert test_case.size() == 4
    test_case.enqueue("stripes")
    assert test_case.size() == 5
Example #6
0
class Stack:
    def __init__(self):
        self.mainQueue = Queue()
        self.scratchQueue = Queue()

    def push(self, element):
        self.mainQueue.enqueue(element)

    def pop(self):
        assert self.size() > 0, 'Stack is empty'
        # Now the "fun" part, we need to get the element at the back of the queue
        while self.mainQueue.size(
        ) > 1:  # will exit when only one element left
            tmp = self.mainQueue.dequeue()  # get it out of one
            self.scratchQueue.enqueue(tmp)  # put it in the other

        element = self.mainQueue.dequeue()

        # Now, the first element of the queue went into scratch, then the
        # second, and so on. That means the order of the elements has
        # remained unchanged. If we swap the labels of the queues, then
        # we'll be back where we started, minus the element at the back
        # of the queue
        self.mainQueue, self.scratchQueue = self.scratchQueue, self.mainQueue

        return element

    def size(self):
        return self.mainQueue.size()
Example #7
0
    def test_size(self):
        q = Queue()
        self.assertEqual(q.size(), 0)

        q.enqueue('a')
        q.enqueue('b')
        q.enqueue('c')
        self.assertEqual(q.size(), 3)
Example #8
0
 def test_size(self):
     q = Queue()
     self.assertEquals(q.size(), 0)
     q.enqueue(1)
     q.enqueue('a')
     q.enqueue('bob')
     q.enqueue(1.0)
     self.assertEquals(q.size(), 4)
Example #9
0
 def test_enqueueInEmptyQueue(self):
     queue = Queue()
     queue.enqueue(5)
     self.assertEqual(queue.size(), 1)
     queue.enqueue(11)
     self.assertEqual(queue.size(), 2)
     queue.enqueue(44)
     self.assertEqual(queue.size(), 3)
Example #10
0
class EnqueueInEmptyQueue(unittest.TestCase):
    def setUp(self) -> None:
        self.q = Queue()

    def test(self):
        self.assertEqual(0, self.q.size())
        self.q.enqueue(1)
        self.assertEqual(1, self.q.size())
        self.assertEqual(1, self.q.dequeue())
Example #11
0
def test_size():
    q= Queue()
    for i in range(100):
        q.enqueue(i)

    assert q.size()== 100
    for j in range(50):
        q.dequeue()
    assert q.size()== 50
Example #12
0
 def test_size(self):
     q = Queue()
     self.assertEqual(q.size(), 0)
     q.enqueue(1)
     self.assertEqual(q.size(), 1)
     q.enqueue("fish")
     self.assertEqual(q.size(), 2)
     q.enqueue(2)
     self.assertEqual(q.size(), 3)
Example #13
0
def test_size():
    q = Queue()
    for i in range(100):
        q.enqueue(i)

    assert q.size() == 100
    for j in range(50):
        q.dequeue()
    assert q.size() == 50
def main():
	q = Queue()
	q.isEmpty()
	q.enqueue(9)
	q.enqueue(2)
	q.enqueue(3)
	q.isEmpty()
	q.size()
	q.peek()
	q.print_list()
def main():
    q = Queue()
    q.isEmpty()
    q.enqueue(9)
    q.enqueue(2)
    q.enqueue(3)
    q.isEmpty()
    q.size()
    q.peek()
    q.print_list()
Example #16
0
def test_size():
    q = Queue()
    assert q.size() == 0
    for i in range(1,4):
        q.enqueue(i)
    assert q.size() == 3
    q.dequeue()
    assert q.size() == 2
    q.dequeue()
    assert q.size() == 1
Example #17
0
def hot_potato(name_list, num):
    sim_queue = Queue()
    for name in name_list:
        sim_queue.enqueue(name)
    while sim_queue.size() > 1:
        for i in range(num):
            bible = sim_queue.dequeue()
            print(sim_queue.size(),bible)
            sim_queue.enqueue(bible)
        sim_queue.dequeue()
    return sim_queue.dequeue()
Example #18
0
    def test_enqueue(self):
        queue = Queue()

        queue.enqueue(11)
        self.assertEqual(queue.get_all(), [11])
        self.assertEqual(queue.size(), 1)
        self.assertEqual(queue.peek(), 11)

        queue.enqueue(22)
        self.assertEqual(queue.get_all(), [11, 22])
        self.assertEqual(queue.size(), 2)
        self.assertEqual(queue.peek(), 11)
Example #19
0
class EnqueueInNotEmptyQueue(unittest.TestCase):
    def setUp(self) -> None:
        self.q = Queue()
        for i in range(0, 10):
            self.q.enqueue(i)

    def test(self):
        self.assertEqual(10, self.q.size())
        self.q.enqueue(10)
        self.assertEqual(11, self.q.size())

        for i in range(0, 11):
            self.assertEqual(i, self.q.dequeue())
Example #20
0
class QueueTestCase(unittest.TestCase):
    def setUp(self):
        self.queue = Queue()

    def test_isEmpty(self):
        self.assertEqual(self.queue.isEmpty(),True)

    def test_queue(self):
        self.queue.enqueue(12)
        self.queue.enqueue('queue')
        self.queue.enqueue('end')
        self.assertEqual(self.queue.size(),3)
        self.assertEqual(self.queue.dequeue(),12)
        self.assertEqual(self.queue.dequeue(),'queue')
        self.assertEqual(self.queue.size(),1)
Example #21
0
class TestQueue(unittest.TestCase):
    def setUp(self):
        self.q = Queue()

    def test_all(self):
        self.assertTrue(self.q.isEmpty())
        self.q.enqueue(4)
        self.q.enqueue('dog')
        self.q.enqueue(True)
        self.assertEqual(3, self.q.size())
        self.assertFalse(self.q.isEmpty())
        self.q.enqueue(8.4)
        self.assertEqual(4, self.q.dequeue())
        self.assertEqual('dog', self.q.dequeue())
        self.assertEqual(2, self.q.size())
def simulate_line(till_show, max_time, num_cus):
    pq = Queue()
    tix_sold = []

    for i in range(1, num_cus + 1):
        pq.enqueue("person_" + str(i))

    print("--- Show waiting customers ---")
    i = pq.size() - 1
    while i >= 0:
        print(pq.showqueue(i))
        i -= 1
    print("--- end ---\n")

    t_end = time.time() + till_show
    now = time.time()
    while (now < t_end) and (not pq.is_empty()):
        now = time.time()   # get time now
        r = random.randint(0, max_time)
        time.sleep(r)
        person = pq.dequeue()
        print("{} waits for {} sec to get in.".format(person, r))
        tix_sold.append(person)
        i += 1

    return tix_sold
Example #23
0
    def connect(self, root):
        if (root == None):
            return
        q = Queue()
        q.put(root)

        while (not q.empty()):
            size = q.size()
            pre = q.get()
            if (pre.left != None):
                q.put(pre.left)
            if (pre.right != None):
                q.put(pre.right)

            for i in range(size):
                if (i == 0):
                    continue
                cur = q.get()
                if (cur.left != None):
                    q.put(cur.left)
                if (cur.right != None):
                    q.put(cur.right)
                pre.right = cur
                pre = cur
            pre.right = None
Example #24
0
def test_dequeue_multi():
    queue = Queue()
    queue.enqueue("Bacon")
    queue.enqueue("Beer")
    assert queue.dequeue() == "Bacon"
    assert queue.first_item.data == "Beer"
    assert queue.size() == 1
Example #25
0
def bfs(g, start):  # it takes in a graph and the start point
    start.setDistance(0)
    start.setPred(None)
    vertQueue = Queue()
    vertQueue.enqueue(start)
    while (vertQueue.size() > 0):
        currentVert = vertQueue.dequeue(
        )  # Start exploring the vertices at the front of the queue by iterating/dequeueing. Each time the element color is checked
        for nbr in currentVert.getConnections():
            if (
                    nbr.getColor() == 'white'
            ):  #if the vertex is unexplored, 4 things happen. All the vertices are initialized to white when they are constructed
                nbr.setColor(
                    'gray'
                )  # The new unexplored vertex is colored gray, when the vertex is first initially discovered
                nbr.setDistance(
                    currentVert.getDistance() + 1
                )  #the distance to nbr is set to the distance to the currentVert+1
                nbr.Pred(currentVert
                         )  #the predessesor of nbr is set to the currentVert
                vertQueue.enqueue(
                    nbr
                )  #adding nbr to the end of the queue which makes it be available for further exploration
        currentVert.setColor(
            'black'
        )  # When the vertex is completely explored, then its colored black
def test_size(li, result):
    """Test size method."""
    from queue import Queue
    new_list = Queue()
    for item in li:
        new_list.enqueue(item)
    assert result == new_list.size()
Example #27
0
def simulation(numSeconds, pagesPerMinute):
    """
    打印任务模拟
    Args:
        numSeconds:numSeconds 时间内模拟打印
        pagesPerMinute:打印速度 pages/min
    """
    labprinter = Printer(pagesPerMinute)
    printQueue = Queue()
    waitingtimes = []

    for currentSecond in range(numSeconds):
        if newPrintTask():
            task = Task(currentSecond)
            printQueue.enqueue(task)
        #打印机空闲且队列不为空
        if (not labprinter.busy()) and (not printQueue.isEmpty()):
            #下一个任务
            nexttask = printQueue.dequeue()
            waitingtimes.append(nexttask.waitTime(currentSecond))
            labprinter.startNext(nexttask)
        labprinter.tick()

    averageWait = sum(waitingtimes) / len(waitingtimes)
    print("Average wait %6.2f secs %3d tasks remaining." %
          (averageWait, printQueue.size()))
Example #28
0
    def test_dequeue(self):
        queue = Queue()
        queue.enqueue(11)
        queue.enqueue(22)
        self.assertEqual(queue.get_all(), [11, 22])

        res = queue.dequeue()
        self.assertEqual(queue.get_all(), [22])
        self.assertEqual(res, 11)
        self.assertEqual(queue.size(), 1)
        self.assertEqual(queue.peek(), 22)

        res = queue.dequeue()
        self.assertEqual(queue.get_all(), [])
        self.assertEqual(res, 22)
        self.assertEqual(queue.size(), 0)
def testEmpty():
    q = Queue()
    testData = getRandom(10)
    for item in testData:
        q.pushBack(item)
    q.empty()
    assert q.size() == 0
Example #30
0
def bft(player):
    q = Queue()
    visited = set()
    q.enqueue([("s", player.current_room.id)
               ])  # Enqueue the starting vertex with its direction

    while q.size() > 0:
        path = q.dequeue()
        cur_room = path[-1]  # last vertex from the path

        if player.current_room not in visited:
            visited.add(player.current_room.id)

        # Iterate through the exits
        for direction in world.rooms[cur_room[1]].get_exits():
            # Check if cur_rooms neighbor is in unexplored (global)
            if world.rooms[cur_room[1]].get_room_in_direction(
                    direction) not in unexplored:
                # Add (room.id, direction)
                path.append((direction, world.rooms[
                    cur_room[1]].get_room_in_direction(direction).id))
                print(path)
                return path
            # Check if cur_rooms neighbor.id is in visited (intern)
            if world.rooms[cur_room[1]].get_room_in_direction(
                    direction).id not in visited:
                new_room = world.rooms[cur_room[1]].get_room_in_direction(
                    direction)
                new_path = path.copy()
                # Add room with direction & Id
                new_path.append((direction, new_room.id))
                visited.add(new_room.id)
                q.enqueue(new_path)
Example #31
0
def simulation(numOfStd, pagePerMinute):
    labPrinter = Printer(pagePerMinute)
    printerQueue = Queue()
    waitingTimes = []
    currentSecond = 0
    taskCnt = numOfStd * 2

    while True:
        if newPrintTask() and taskCnt > 0:
            printerQueue.enqueue(Task(currentSecond))
            taskCnt -= 1

        if not labPrinter.busy() and not printerQueue.isEmpty():
            nextTask = printerQueue.dequeue()
            waitingTimes.append(nextTask.waitTime(currentSecond))
            labPrinter.startNext(nextTask)

        if taskCnt == 0 and not labPrinter.busy() and printerQueue.isEmpty():
            break

        labPrinter.tick()
        currentSecond += 1

    avgWait = sum(waitingTimes) / len(waitingTimes)
    print("Average Wait %6.2f seconds %3d tasks ramaining"%(avgWait, printerQueue.size()))
Example #32
0
def test_queue_enqueue_dequeue_from_empty():
    """Test ability to enqueue to empty queue and dequeueu same node."""
    test_case = Queue()
    test_case.enqueue("stripes")
    assert test_case.dll.head.data == "stripes"
    assert test_case.dequeue() == "stripes"
    assert test_case.size() == 0
Example #33
0
def bfs(g, start, end):
    vertex_queue = Queue()
    vertex_queue.enqueue(start)

    visited = set()
    visited.add(start.id)

    curr_vertex = None
    while vertex_queue.size() > 0:
        curr_vertex = vertex_queue.dequeue()

        if curr_vertex.id == end.id:
            break

        # print(curr_vertex.id, curr_vertex.getNeighbors())

        for nbr in curr_vertex.getNeighbors():
            if nbr in visited:
                continue
            v = g.getVertex(nbr)
            v.prev_vertex = curr_vertex
            vertex_queue.enqueue(v)

        visited.add(curr_vertex.id)
        print('visited size', len(visited))

    print('========')
    while curr_vertex is not None:
        print(curr_vertex.id)
        curr_vertex = curr_vertex.prev_vertex
Example #34
0
def bfs_map(graph, starting_room):
    queue = Queue()
    visited = set()

    queue.enqueue([starting_room])

    while queue.size():
        path = queue.dequeue()
        rooms = path[-1]

        if rooms not in visited:
            visited.add(rooms)

            for room in graph[rooms]:

                if graph[rooms][room] == '?':

                    return path

            for adjacent_rooms in graph[rooms]:

                surrounding_rooms = graph[rooms][adjacent_rooms]
                new_path = list(path)
                new_path.append(surrounding_rooms)
                queue.enqueue(new_path)
def test_size(li, result):
    """Test size method."""
    from queue import Queue
    new_list = Queue()
    for item in li:
        new_list.enqueue(item)
    assert result == new_list.size()
Example #36
0
class QueueTest(unittest.TestCase):
   def setUp(self):
      self.myqueue = Queue()

   def tearDown(self):
      del(self.myqueue)

   def test_create_empty_queue(self):
      self.assertEqual(self.myqueue.isEmpty(), True)

   def test_enqueue_element(self):
      self.myqueue.enqueue(1)
      self.assertEqual(self.myqueue.items[0], 1)

   def test_dequeue_element(self):
      self.myqueue.items.append(1)
      self.assertEqual(self.myqueue.dequeue(), 1)

   def test_ordering_enqueue_dequeue(self):
      self.myqueue.enqueue(1)
      self.myqueue.enqueue(2)
      self.assertEqual(self.myqueue.dequeue(), 1)
      self.assertEqual(self.myqueue.dequeue(), 2)

   def test_queue_size(self):
      self.myqueue.enqueue(1)
      self.myqueue.enqueue(2)
      self.myqueue.enqueue(3)
      self.assertEqual(self.myqueue.size(), 3)
def simulation(seconds, ppm):

    printer = Printer(ppm)
    q = Queue()
    waittimes = []

    for currentSecond in range(seconds):

        if newPrintTask():
            task = Task(currentSecond)
            q.enqueue(task)

        if (not printer.isBusy()) and (not q.isEmpty()):
            nextTask = q.dequeue()
            waittimes.append(nextTask.getTimeWaited(currentSecond))

            printer.startNextTask(nextTask)


        printer.countdown()

    averageWait = sum(waittimes)/len(waittimes)

    print "Average wait of %6.2f seconds; %3d tasks remaining." \
            % (averageWait, q.size())
    return
Example #38
0
class TestQueue(unittest.TestCase):

	def setUp(self):
		self.obj = Queue()


	def tearDown(self):
		self.obj = Queue()


	def test_empty_queue(self):
		self.assertTrue(self.obj.is_empty())


	def test_raises_queue_empty_error(self):
		self.assertRaises(QueueEmptyError, lambda: self.obj.dequeue())


	def test_queue_size(self):
		size = 20
		for i in range(size):
			self.obj.enqueue(i)

		self.assertEqual(self.obj.size(), size)


	def test_queue_top_item(self):
		size = 20
		for i in range(size):
			self.obj.enqueue(i)

		self.assertEqual(self.obj.dequeue(), 0)
Example #39
0
def test_size():
    """Test if the size method works."""
    from queue import Queue
    my_queue = Queue()
    my_queue.enqueue('monkey')
    my_queue.enqueue('chicken')
    my_queue.enqueue('baby')
    assert my_queue.size() == 3
Example #40
0
def play_hot_potato(players):
    # put players in queue
    queue = Queue()
    for player in players:
        queue.enqueue(player)
        
    # play the game until we have one winner
    while queue.size() > 1:
        # pass a random number of times
        num_of_passes = random.randint(1, 5*queue.size())
        for i in range(num_of_passes):
            # pass
            queue.enqueue(queue.dequeue())
        # remove the person holding the potato
        queue.dequeue()
    # return winner
    return queue.dequeue()
def test_size_with_remove():
    queue = Queue()
    queue.enqueue("Bacon")
    queue.enqueue("Beer")
    queue.enqueue("Cow")
    queue.enqueue("Whiskey")
    queue.dequeue()
    assert queue.size() == 3
Example #42
0
    def test_Queue_dequeue(self):
        q1 = Queue()

        q1.enqueue(0)
        q1.enqueue(1.2)
        q1.enqueue("3.4")
        q1.enqueue([5, 6])
        q1.enqueue((7, 8))
        q1.enqueue({9, 10})

        self.assertEqual(q1.size(), 6)
        self.assertEqual(q1.dequeue(), 0)
        self.assertEqual(q1.size(), 5)
        self.assertEqual(q1.dequeue(), 1.2)
        self.assertEqual(q1.size(), 4)
        self.assertEqual(q1.dequeue(), "3.4")
        self.assertEqual(q1.size(), 3)
        self.assertEqual(q1.dequeue(), [5, 6])
        self.assertEqual(q1.size(), 2)
        self.assertEqual(q1.dequeue(), (7, 8))
        self.assertEqual(q1.size(), 1)
        self.assertEqual(q1.dequeue(), {9, 10})
        self.assertEqual(q1.size(), 0)

        with self.assertRaises(ValueError):
            q1.dequeue()
def hotPotato(list, num):
    Q = Queue()
    for i in list:
        Q.enqueue(i)
    while Q.size() !=1:
        for j in xrange(num):
            Q.enqueue(Q.dequeue())
        Q.dequeue()
    return Q.dequeue()
Example #44
0
def test_size():
    """
    The size of the queue should be accurately pollable
    """
    queue = Queue()
    queue.enqueue(500)
    queue.enqueue(600)
    queue.enqueue(700)
    assert queue.size() == 3
Example #45
0
def hot_potato(name_list, num):
    sim_queue = Queue()
    for name in name_list:
        sim_queue.enqueue(name)
    while sim_queue.size() > 1:
        for i in range(num):
            sim_queue.enqueue(sim_queue.dequeue()) # loop
        sim_queue.dequeue() # elminated
    return sim_queue.dequeue()
Example #46
0
def hot_potato(namelist,num):
    s=Queue()
    for name in namelist:
        s.enqueue(name)
    while s.size()>1:
        for i in range(num):
            s.enqueue(s.dequeue())
        s.dequeue()

    return s.dequeue()
Example #47
0
 def breadth_first(self):
     """Traverse tree with breadth-first traversal."""
     q = Queue()
     q.enqueue(self)
     while q.size() > 0:
         tree = q.dequeue()
         if tree.value is not None:
             yield tree.value
         for child in tree._children():
             q.enqueue(child)
Example #48
0
 def breadth_first_traversal(self):
     q = Queue()
     q.enqueue(self.root)
     while q.size() > 0:
         current = q.dequeue()
         yield current.value
         if current.left:
             q.enqueue(current.left)
         if current.right:
             q.enqueue(current.right)
Example #49
0
def hotPotato(namelist, num):
    simqueue = Queue()
    for name in namelist:
        simqueue.enqueue(name)

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

    return simqueue.dequeue()
Example #50
0
def main():
    my = Queue()
    while 1:
        command = input("Add, Serve, or Exit:")
        if command == "Add":
            print("%s"%my.size())
            if my.size() > 2:
                print ("You cannot add more people, the lineup is full!")
            else:
                name = input("enter the name of the person to add:")
                my.queue(name)
        
        if command == "Serve":
            if my.is_empty():
                print("the lineup is already empty")
            else:
                print("%s has beed served"%my.dequeue())
        if command == "Exit":
            import sys
            sys.exit(0)
def hotpotato(namelist,num):
	q = Queue()
	for name in q:
		q.enqueue(name)

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

	return q.dequeue()
def hot_potato(name_list, num):
  q = Queue()
  for name in name_list:
     q.enqueue(name)
  while q.size() > 1 :
    # print q
     for i in range(num):
       q.enqueue(q.dequeue())
       print q
     q.dequeue()
  return q.dequeue()
def hotPotato(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()
Example #54
0
def passparcel(names, n):
    pass_queue = Queue()
    for name in names:
        pass_queue.enqueue(name)

    while pass_queue.size() > 1:
        for i in range(n):
            pass_queue.enqueue(pass_queue.dequeue())
            
        pass_queue.dequeue()

    return pass_queue.dequeue()
Example #55
0
def hot(names, n):
    q = Queue()
    for name in names:
        q.enqueue(name)

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

        q.dequeue()
        print q.items
    return q.dequeue()
Example #56
0
def hotPotato(namelist, num):
    queue = Queue()
    for name in namelist:
        queue.enqueue(name)

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

        queue.dequeue()

    return queue.dequeue()
Example #57
0
 def breadth_first_traversal(self, start):
     """Perform a breadth first traversal on a graph starting at the given node"""
     from queue import Queue
     q = Queue()
     q.enqueue(start)
     visited = [start]
     while q.size() > 0:
         current = q.dequeue()
         for neighbor in self.neighbors(current):
             if neighbor not in visited:
                 q.enqueue(neighbor)
                 visited.append(neighbor)
     return visited
def hot_potato(name_list):
    a_queue = Queue()
    for name in name_list:
        a_queue.enqueue(name)
        
    while a_queue.size() > 1:       
        num = random.randint(1, 7)
        for i in range(num):
            tem = a_queue.dequeue()
            a_queue.enqueue(tem)
        a_queue.dequeue()
            
    return a_queue.dequeue()