4.2 二叉树的基本使用(python版)

(一)定义二叉树节点

1 class Node: 
2     def __init__(self, data):
3         self.data = data
4         self.left = None
5         self.right = None

(二)二叉树的顺序遍历

从左到右广度遍历

1 def display(tree):
2     if tree is None: 
3         return
4     if tree.left is not None:
5         display(tree.left)
6     print(tree.data)
7     if tree.right is not None:
8         display(tree.right)
9     return

(三)二叉树的深度遍历

从上到下深度遍历

 1 def depth_of_tree(tree): 
 2     if tree is None:
 3         return 0
 4     else:
 5         depth_l_tree = depth_of_tree(tree.left)
 6         depth_r_tree = depth_of_tree(tree.right)
 7         if depth_l_tree > depth_r_tree:
 8             return 1 + depth_l_tree
 9         else:
10             return 1 + depth_r_tree

(四)判断二叉树是否满二叉树

看是不是满二叉树,

 1 def is_full_binary_tree(tree): 
 2 
 3     if tree is None:
 4         return True
 5     if (tree.left is None) and (tree.right is None):
 6         return True
 7     if (tree.left is not None) and (tree.right is not None):
 8         return (is_full_binary_tree(tree.left) and is_full_binary_tree(tree.right))
 9     else:
10         return False

如果节点是空,是空的

如果左节点是空,并且右节点为空,是空的

如果左右节点不空,那么就执行左右节点的这个函数,递归下去,否则报错,那么它就是满二叉树

扫描二维码关注公众号,回复: 6876944 查看本文章

猜你喜欢

转载自www.cnblogs.com/duoyan3wei/p/11252763.html
4.2