def test_queue(self): queue = Queue() self.assertEqual(queue.is_empty(), True) self.assertEqual(queue.peek(), None) queue.queue("first_in_line") self.assertEqual(queue.peek(), "first_in_line") self.assertEqual(queue.is_empty(), False) queue.queue("second_in_line") self.assertEqual(queue.de_queue(), "first_in_line") self.assertEqual(queue.peek(), "second_in_line") self.assertEqual(queue.de_queue(), "second_in_line") self.assertEqual(queue.is_empty(), True) self.assertEqual(queue.peek(), None)
def traversal_level_order(self): # o(n) for time # o(n) for space if self.root is None: return node_queue = Queue() node_queue.queue(self.root) value = [] while not node_queue.is_empty(): current_node = node_queue.de_queue() value.append(current_node.value) if current_node.left is not None: node_queue.queue(current_node.left) if current_node.right is not None: node_queue.queue(current_node.right) return value