好久没有更新博客了,关于二叉树也查了不少资料,下面写上我对二叉树的理解。
一、什么是二叉树
二叉树是一种树形结构,其中每个节点的叶子节点不超过两个,而且二叉树的左右子树是有顺序的,顺序不能颠倒如下图所示,一下四种都属于二叉树。
二、特殊的二叉树
1.满二叉树:听名字就可以得知,这种二叉树是所有节点都有2个叶子节点或者无叶子节点得二叉树,其中有个公式,如果二叉树得高度为h,那么满二叉树含有(2^h)-1个节点,如下图所示。
2.完全二叉树:和满二叉树类似,但是完全二叉树有着非常重要得特点就是如果存在度为1得节点,那只能是左孩子,而且叶子节点只能出现在层次最大的两层以上出现,而且每个节点都与高度相同的满 二叉树中从上到下从左到右一一对应。如图所示。
3.二叉排序树:左子树所有关键字均小于根节点,右子树上所有关键字均大于根节点,左右子树又是二叉排序树。如题所示
4.平衡二叉树:树上任意一节点左子树和右子树深度差不超过1。
三、二叉树的链式存储结构
链式存储结构的节点
typedef int ElemType; typedef struct { ElemType data; struct BiTNode *lchild, *rchild; }BiTNode,*BiTree;