Beispiel #1
0
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)
Beispiel #3
0
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() + "'")
Beispiel #4
0
 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
Beispiel #5
0
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)
Beispiel #7
0
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())
Beispiel #8
0
 def getStructure(self):
     return Queue()
Beispiel #9
0
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())