本文最后更新于1927天前,其中的信息可能已经有所发展或是发生改变。
class Node: # 这是一个带有构造函数的类节点,其中包含类型数据的数据变量和左右指针。 def __init__(self, data): self.data = data self.left = None self.right = None def display(tree): #按顺序遍历树 if tree is None: return if tree.left is not None: display(tree.left) print(tree.data) if tree.right is not None: display(tree.right) return def depth_of_tree(tree): #这是查找二叉树深度的递归函数。 if tree is None: return 0 else: depth_l_tree = depth_of_tree(tree.left) depth_r_tree = depth_of_tree(tree.right) if depth_l_tree > depth_r_tree: return 1 + depth_l_tree else: return 1 + depth_r_tree def is_full_binary_tree(tree): # 这个函数返回的是完整的二叉树吗? if tree is None: return True if (tree.left is None) and (tree.right is None): return True if (tree.left is not None) and (tree.right is not None): return (is_full_binary_tree(tree.left) and is_full_binary_tree(tree.right)) else: return False def main(): # 用于测试的主要功能。 tree = Node(1) tree.left = Node(2) tree.right = Node(3) tree.left.left = Node(4) tree.left.right = Node(5) tree.left.right.left = Node(6) tree.right.left = Node(7) tree.right.left.left = Node(8) tree.right.left.left.right = Node(9) print(is_full_binary_tree(tree)) print(depth_of_tree(tree)) print("Tree is: ") display(tree) if __name__ == '__main__': main()
点击数:126