数据结构--二叉树的生成和遍历(9)

发布时间 2023-12-09 16:58:15作者: 熊熊会发光哦

好久没有更新博客了,关于二叉树也查了不少资料,下面写上我对二叉树的理解。

一、什么是二叉树

  二叉树是一种树形结构,其中每个节点的叶子节点不超过两个,而且二叉树的左右子树是有顺序的,顺序不能颠倒如下图所示,一下四种都属于二叉树。

 

 

二、特殊的二叉树

  1.满二叉树:听名字就可以得知,这种二叉树是所有节点都有2个叶子节点或者无叶子节点得二叉树,其中有个公式,如果二叉树得高度为h,那么满二叉树含有(2^h)-1个节点,如下图所示。

  

 

  2.完全二叉树:和满二叉树类似,但是完全二叉树有着非常重要得特点就是如果存在度为1得节点,那只能是左孩子,而且叶子节点只能出现在层次最大的两层以上出现,而且每个节点都与高度相同的满    二叉树中从上到下从左到右一一对应。如图所示。

 

 

 

3.二叉排序树:左子树所有关键字均小于根节点,右子树上所有关键字均大于根节点,左右子树又是二叉排序树。如题所示

 

 

4.平衡二叉树:树上任意一节点左子树和右子树深度差不超过1。

 

三、二叉树的链式存储结构

链式存储结构的节点

typedef int ElemType;

typedef struct  {
    ElemType data;
    struct BiTNode *lchild, *rchild;
}BiTNode,*BiTree;