コード例 #1
0
    def breadth_first(self, starting_vertex):
        """
        Method to do breadth-first traversal on a graph.
        Input: starting vertex
        Output: list of vertices in the breadth-first order
        """
        vertices = []
        breadth = Queue()

        if starting_vertex not in self._adjacency_list:
            raise ValueError

        breadth.enqueue(starting_vertex)

        while not breadth.is_empty():
            front = breadth.dequeue()
            vertices.append(front)

            for neighbor in self.get_neighbors(front):
                if not neighbor[0].visited:
                    neighbor[0].visited = True
                    breadth.enqueue(neighbor[0])

        for node in self._adjacency_list:
            node.visited = False

        return vertices
コード例 #2
0
    def breadth_add(self, value):
        """Method that takes in a value, and creates nodes with given value in level order"""

        node = Node(value)

        if not self.root:
            self.root = node
            return

        q = Queue()

        q.enqueue(self.root)

        while not q.is_empty():

            current = q.dequeue()

            if current.left:
                q.enqueue(current.left)
            else:
                current.left = node
                break

            if current.right:
                q.enqueue(current.right)
            else:
                current.right = node
                break
コード例 #3
0
def test_exhausted():
    q = Queue()
    q.enqueue("apple")
    q.enqueue("banana")
    q.enqueue("cucumber")
    q.dequeue()
    q.dequeue()
    q.dequeue()
    actual = q.is_empty()
    expected = True
    assert actual == expected
コード例 #4
0
    def breadth_first(self, node):
        nodes = []
        breadth = Queue()
        breadth.enqueue(node)
        visited = {node: True}

        while not breadth.is_empty():
            front = breadth.dequeue()
            nodes.append(front.value)

            for el in self.adjacency_list[front]:
                print(el.node.value)
                if el.node not in visited:
                    visited[el.node] = True
                    breadth.enqueue(el.node)
        return nodes
コード例 #5
0
def test_is_empty():
    q = Queue()
    assert q.is_empty() == True
def test_is_empty():
    q = Queue()
    actual = q.is_empty()
    expected = True
    assert actual == expected
def test_queue_is_empty():
    testing_queue = Queue()
    expected = True
    actual = testing_queue.is_empty()
    assert actual == expected
def test_is_empty_dequeue_none():
    new_queue = Queue()
    new_queue.dequeue()
    assert new_queue.is_empty() == True
def test_if_queue_is_empty_boolean(queue):
    empty_queue = Queue()
    queue.enqueue('bag')
    actual = [empty_queue.is_empty(), queue.is_empty()]
    expected = [True, False]
    assert actual == expected