08--树的基础知识

398 阅读3分钟

一、生活中的树

组织架构图 u=1844335462,3324664736&fm=224&app=112&f=JPEG.jpeg

二、认识树

image.png

我们下认识一下上图中这棵树:

  • 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为兄弟结点;

image.png

  • 8.层次:根结点在第一层,根结点的子结点在第二层,任一节点所在的层次等于双亲结点的层次+1;
  • 9.高度:结点到叶子结点的路径数(边数);
  • 10.深度:根结点到结点所经历的边数。

三、二叉树

image.png 如上图中,所有的结点最多只有两个子树的树,即所有结点的度都小于等于2,我们称之为二叉树,二叉树有如下特征:

  • 1.二叉树的每个结点最多两个子树;
  • 2.二叉树的两个子树有左右之分,称之为左子树右子树,当结点只有一个子树时,左子树和右子树不等同

四、二叉树的分类

1.斜树

image.png

斜树的特点:只有左子树或只有右子树。

2.满二叉树

image.png

  • 1.所有叶子结点都在同一层;
  • 2.除叶子结点以外的其他结点都有左子树和右子树。

3.完全二叉树

image.png

    1. 叶⼦结点只能出现在最下面两层;
    1. 最下层的叶⼦⼀定集中在左部连接;
    1. 倒数第⼆层,若有叶⼦节点, ⼀定都在右部连接位置;
    1. 如果结点度为1, 则该结点只有左孩⼦, 既不存在只有右⼦树的情况;
    1. 同样结点数的⼆叉树, 完全⼆叉树的深度最⼩。

完全二叉树的判断,以下树都不是完全二叉树:

image.png

5结点度为1,但是只有右子树

image.png

应该只有第3、4层有叶子结点,但是第2层也有叶子结点3。

image.png

最下面一层的叶子结点没有集中在左部连接。

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的结点无右孩子。

五、总结

树形结构的特征是一对多的,树中我们主要学习二叉树在日常开发中的应用。