💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
# 二叉树 二叉树是一种具有层级特性的数据结构,每个节点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)。 :-: ![](http://xiaoyulive.oss-cn-beijing.aliyuncs.com/imgs/design_pattern/binaryTree2.png) ## 二叉树的基本形态 二叉树是递归定义的,其结点有左右子树之分,逻辑上二叉树有五种基本形态: :-: ![](http://xiaoyulive.oss-cn-beijing.aliyuncs.com/imgs/design_pattern/binaryTree3.png) (1)空二叉树——如图(a); (2)只有一个根结点的二叉树——如图(b); (3)只有左子树——如图(c); (4)只有右子树——如图(d); (5)完全二叉树——如图(e)。 ## 满二叉树 一棵深度为 k,且有 2^(k-1) 个节点的二叉树,称为满二叉树。这种树的特点是每一层上的节点数都是最大节点数。而在一棵二叉树中,除最后一层外,若其余层都是满的,并且最后一层或者是满的,或者是在右边缺少连续若干节点,则此二叉树为完全二叉树。具有n个节点的完全二叉树的深度为 log2n+1。深度为k的完全二叉树,至少有 2^(k-1) 个节点,至多有 2^(k-1) 个节点。 :-: ![](http://xiaoyulive.oss-cn-beijing.aliyuncs.com/imgs/design_pattern/binaryTree4.png) 普通二叉树扩充为完全二叉树 :-: ![](http://xiaoyulive.oss-cn-beijing.aliyuncs.com/imgs/design_pattern/binaryTree5.png) ## 顺序二叉树 * 任意节点的左子树不空,则左子树上所有结点的值均小于它的根结点的值; * 任意节点的右子树不空,则右子树上所有结点的值均大于它的根结点的值; * 任意节点的左、右子树也分别为二叉查找树; 一颗排序二叉树长这样: :-: ![](http://xiaoyulive.oss-cn-beijing.aliyuncs.com/imgs/design_pattern/binaryTree.png) # 参考资料 http://blog.csdn.net/laokdidiao/article/details/51860741