Exemplo n.º 1
0
	def __str__(self):
		string = ''
		if self.__root is None:
			return 0
		level_size = 1
		# tree_height = 0
		queue = Queue()
		queue.en_queue(self.__root)
		while not queue.is_empty():
			node = queue.de_queue()
			string += node.__str__()
			string += ' '
			level_size -= 1
			if node.left is not None:
				queue.en_queue(node.left)
			
			if node.right is not None:
				queue.en_queue(node.right)
			
			if level_size == 0:
				level_size = queue.size()
				# tree_height += 1
				string += '\n'
				
		return string
Exemplo n.º 2
0
 def __str__(self):
     string = ''
     queue = Queue()
     queue.en_queue(self._root)
     level_size = 1
     while not queue.is_empty():
         node = queue.de_queue()
         string += str(node)
         level_size -= 1
         string += ','
         if node.left is not None:
             queue.en_queue(node.left)
         if node.right is not None:
             queue.en_queue(node.right)
         if level_size == 0:
             level_size = queue.size()
             string += '\n'
     return string
Exemplo n.º 3
0
    def height(self) -> int:
        """
		计算树的高度
		:return: 树的高度
		"""
        if self._root is None:
            return 0
        level_size = 1
        tree_height = 0
        queue = Queue()
        queue.en_queue(self._root)
        while not queue.is_empty():
            node = queue.de_queue()
            level_size -= 1
            if node.left is not None:
                queue.en_queue(node.left)

            if node.right is not None:
                queue.en_queue(node.right)

            if level_size == 0:
                level_size = queue.size()
                tree_height += 1
        return tree_height