Python实现二叉树数据结构程序
树是一种数据结构,由节点组成。节点由边连接。最顶端的节点称为根节点,最底端的节点称为叶节点。叶节点是没有子节点的节点。
二叉树
二叉树是一种树,其中每个节点最多可以包含2个子节点。这意味着每个节点可以有0个、1个或2个子节点,但不能超过2个。二叉树中的每个节点包含三个字段:
数据
指向左子节点的指针
指向右子节点的指针
完全二叉树 - 如果除最后一层外,所有层都已完全填充,并且所有节点都应尽可能靠左,则称二叉树为完全二叉树。
严格/真二叉树 - 如果每个节点都有零个或两个子节点,则称二叉树为严格或真二叉树。
满二叉树 - 如果所有节点都有两个子节点并且所有叶节点都在同一层,则称二叉树为满二叉树。
平衡二叉树 - 如果左子树的高度和右子树的高度之差最多为一(0或1),则称二叉树为平衡二叉树。
从给定数组构造二叉树
示例
如果根节点位于第i个索引处,则左子节点将位于第(2*i+1)个索引处,右子节点将位于第(2*i-1)个索引处。我们将使用此概念从数组元素构造二叉树。
class TreeNode: def __init__(self,data,left=None,right=None): self.data=data self.left=left self.right=right def insert_into_tree(root,arr,i,l): if i<l: print(arr[i]) temp=TreeNode(arr[i]) root=temp root.left=insert_into_tree(root,arr,i*2+1,l) root.right=insert_into_tree(root,arr,i*2+2,l) return root arr=[1,2,3,4,5] i=0 l=len(arr) root=TreeNode(arr[0]) insert_into_tree(root,arr,i,l)
输出
1 2 4 5 3
广告