二叉树
什么是二叉树:二叉树中的(节点)最多只能有两个子节点。
二叉树是由有限个节点所构成的集合,该集合可以为空,
二叉树的根节点下可以分成 两个子树,称为左子树和右子树,
左子树和右子树也称为二叉树。
二叉树如下图:
从上图的(二叉树)中,
大家可以看到(根节点)是A,
(左子树)是B、D、E,
(右子树)是C、F。
另外,二叉树的子树是有(顺序关系)的,分为左子树和右子树。
所以,下图中的两棵树是(相同)的树,但却是(不同)的二叉树,
左边这棵称为(左歪斜树),右边这棵称为(右歪斜树)。
左歪斜树,所有节点的R均不存在,右歪斜树,所有节点的L均不存在。
二叉树与树的区别:
(1)二叉树可以为空,但是,树不可以为空,(至少要有根节点)。
(2)二叉树的子树有顺序的关系,即有顺序的区别,而树没有。
(3)二叉树的分支度只有0、1、2,而树的分支度可以大于2。
满二叉树:
树中所有叶节点都在同一层中,而所有(非终端节点)的分支度为2,
如果树的高度为h,那么,该二叉树的节点数量为2的(h次方)减1。
如下图:
上图中二叉树的高度是3,所以,节点的数量是2的(3次方)减1,
就是8-1=7,一共7个节点。
完全叉树:
把树中(最大阶层)去掉,剩下的部分是一棵满二叉树,
且最大阶层是向左靠齐。如下图:
在上图中,把(最大阶层)D、E去掉,剩下的A、B、C是一棵满二叉树,
同时,(最大阶层)D、E是向左靠齐。
相应的学习文档与代码训练可以通过下方的按钮进行下载,
可使用(多种主流语言)进行代码编写,并完成不同的训练任务,
从而,加深对(数据结构)与(算法)的理解与项目应用,
不要停留在理论知识上,快动起来吧!