一、生活中的树
组织架构图
二、认识树
我们下认识一下上图中这棵树:
- 1.结点:树中的一个独立单元,包含一个数据元素及若干指向其他子树的分支,如A B C D...等等都是树中的一结点;
- 2.结点的度:结点拥有的子树,如A有B C D三个子树,则称A的度为3;
- 3.树的度:结点的度的最大值,如A的度为3、B的度为2、C的度为1,所有节点中度最大为3,所以树的度为3;
- 4.叶子结点:度为0的结点称为叶子结点或终端结点,如K J F G M I J;
- 5.根结点:最上面的结点A称为根结点;
- 5.非终端结点:度不为0的结点称为非终端结点,除根结点以外的非终端结点又称为内部结点;
- 6.双亲结点和子结点:B有子结点E和F,则B为E和F的双亲结点,E和F为B的子结点;
- 7.兄弟结点:有相同双亲结点的结点,如E和F为兄弟结点;
- 8.层次:根结点在第一层,根结点的子结点在第二层,任一节点所在的层次等于双亲结点的层次+1;
- 9.高度:结点到叶子结点的路径数(边数);
- 10.深度:根结点到结点所经历的边数。
三、二叉树
如上图中,所有的结点最多只有两个子树的树,即所有结点的度都小于等于2,我们称之为二叉树,二叉树有如下特征:
- 1.二叉树的每个结点最多
两个子树;- 2.二叉树的两个子树有左右之分,称之为
左子树和右子树,当结点只有一个子树时,左子树和右子树不等同。
四、二叉树的分类
1.斜树
斜树的特点:只有左子树或只有右子树。
2.满二叉树
- 1.所有叶子结点都在同一层;
- 2.除叶子结点以外的其他结点都有左子树和右子树。
3.完全二叉树
- 叶⼦结点只能出现在
最下面两层;
最下层的叶⼦⼀定集中在左部连接;
- 倒数第⼆层,若有叶⼦节点, ⼀定都在
右部连接位置;
- 如果结点
度为1, 则该结点只有左孩⼦, 既不存在只有右⼦树的情况;
- 同样结点数的⼆叉树, 完全⼆叉树的深度最⼩。
完全二叉树的判断,以下树都不是完全二叉树:
5结点度为1,但是只有右子树
应该只有第3、4层有叶子结点,但是第2层也有叶子结点3。
最下面一层的叶子结点没有集中在左部连接。
4.二叉树的性质
- 1.二叉树的第i层上,最多有
2的(i-1)次方个结点;- 2.深度为k的树最多有
(2的k+1次方)-1个结点;- 3.有n个结点的完全二叉树的深度为
(log以2为底n的对数)+1;- 4.对有n个结点的完全二叉树,如果按照从上到下,从左到右的顺序的顺序从1开始对所有的结点编号,则对任意序号为i的结点有:
- a.如果i=1,则序号为i的结点为
根结点,根结点无双亲结点;- b.如果i>1,则序号为i的结点的
双亲结点的序号为i/2;- c.如果2*i <= n,则序号为i的结点的
左孩子的序号为2*i;- d.如果2*i > n,则序号为i的结点无左孩子;
- e.如果2*i + 1 <= n,则序号为i的结点的
右孩子的序号为2*i+1;- f.如果2*i + 1 > n,则序号为i的结点无右孩子。
五、总结
树形结构的特征是一对多的,树中我们主要学习二叉树在日常开发中的应用。