def bfs(head): visited_ids, visited_vals = set(), List() queue = Queue() queue.enqueue(head) visited_ids.add(head.idx) visited_vals.append(head.val) def step(): if not queue: return node = queue.dequeue() for next_node in node.nexts: if next_node.idx not in visited_ids: queue.enqueue(next_node) visited_ids.add(next_node.idx) visited_vals.append(next_node.val) step() return visited_vals step() return visited_vals
def test_dequeue(self): """ Test dequeue() and make sure item is removed from queue and returned """ a = Queue() for i in range(1,4): a.enqueue(str(i)) for j in range(1,4): self.assertEqual(a.dequeue(), str(j)) self.assertEqual(len(a), 3-j)
def hot_potato(names, num): game_queue = Queue() for name in names: game_queue.enqueue(name) while game_queue.size() > 1: for index in range(num - 1): member = game_queue.dequeue() game_queue.enqueue(member) print(game_queue.dequeue() + ' has been knocked out!') print("Winner is '" + game_queue.dequeue() + "'")
def __init__(self, name="defaultname", theaters=None, timeslots=None, shows=None, films=None, users=None, reservations=None, autoExecute=True): self.name = name self.theaters = theaters self.timeslots = timeslots self.shows = shows self.films = films if reservations == None: reservations = Queue() self.reservations = reservations self.reservationCounter = 0 self.users = users self.autoExecute = autoExecute
def bfs(adj_list, i_start=0): visited, ii_order = set(), List() queue = Queue() queue.enqueue(i_start) visited.add(i_start) ii_order.append(i_start) def step(): if not queue: return else: i = queue.dequeue() for j in adj_list[i]: if j not in visited: visited.add(j) ii_order.append(j) queue.enqueue(j) step() step() return ii_order
def test_enqueue(self): """ Test enqueue() and make sure item is put on queue """ a = Queue() a.enqueue(4) self.assertEqual(len(a), 1) for i in range(1, 5): a.enqueue(str(i)) self.assertEqual(len(a), i+1)
from structures.linkedList import List from structures.queue import Queue from structures.stack import Stack mylist = List() for i in range(5): mylist.add(i) mylist.add(5) mylist.add(7, 1) for i in mylist: print(i) queue = Queue() queue.enqueue(1) queue.enqueue(2) queue.enqueue(3) queue.enqueue(4) for i in range(queue.size): print(queue.dequeue()) stack = Stack() stack.push(1) stack.push(2) stack.push(3) stack.push(4) for i in range(stack.size): print(stack.pop())
def getStructure(self): return Queue()
def queue_workouts(option: int, n: int = 0): """ blabla """ data_file = open("generator/data.json") data = json.load(data_file) start = time.perf_counter() if option: #queue_array queue = Queue_Array(n) for i in range(n): exercise = random.choice(data["random_exercises"]) queue.push(exercise) if (i % 10000 == 0): print("batch", i) else: #queue_references queue = Queue() for i in range(n): exercise = random.choice(data["random_exercises"]) queue.push(exercise) if (i % 10000 == 0): print("batch", i) end = time.perf_counter() print(f"Push {n} elements took {end-start:0.4f} seconds") print() while True: b = input(" \n Have you exercised?: yes/no \n") if (b == "yes"): try: n = days = int(input("How many days?\n")) except ValueError as e: print("Invalid Data") continue start = time.perf_counter() while (days): try: queue.pop() except IndexError as e: print("All of queue popped, queue now empty!") break days -= 1 end = time.perf_counter() print(f"Pop {n-days} elements took {end-start:0.4f} seconds \n") elif b == "no": exit = input("Exit ? yes/no \n") if exit == "yes": break if exit != "no": print("Invalid data") else: print("Invalid data")
def setUp(self): self._queue = Queue()
class TestQueue(unittest.TestCase): def setUp(self): self._queue = Queue() def test_enqueue_and_peek(self): self._queue.enqueue(1) assert (self._queue.peek() == 1) def test_enqueue_many_and_peek(self): self._queue.enqueue(1) self._queue.enqueue(2) self._queue.enqueue(3) assert (self._queue.peek() == 1) def test_dequeue_from_empty_queue(self): self.assertRaises(IndexError, self._queue.dequeue) def test_enqueue_and_dequeue_in_correct_order(self): self._queue.enqueue(1) self._queue.enqueue(2) self._queue.enqueue(3) assert (self._queue.dequeue() == 1) assert (self._queue.dequeue() == 2) assert (self._queue.dequeue() == 3) def test_peek_does_not_change_state(self): self._queue.enqueue(1) self._queue.enqueue(2) assert (self._queue.peek() == 1) assert (self._queue.peek() == 1) self._queue.dequeue() assert (self._queue.peek() == 2) assert (self._queue.peek() == 2)
def test_len(self): a = Queue() self.assertEqual(len(a), 0) for i in range(10): a.enqueue(i) self.assertEqual(len(a), i+1)
def test_top(self): a = Queue() a.enqueue("abc") self.assertTrue(a.top(), "abc") a.enqueue("foo") self.assertTrue(a.top(), "foo")
def test_isEmpty(self): a = Queue() self.assertTrue(a.isEmpty()) a.enqueue(4) self.assertFalse(a.isEmpty()) a.enqueue(5) self.assertFalse(a.isEmpty()) a.dequeue() a.dequeue() self.assertTrue(a.isEmpty())