树的定义
树是一个有限数据元素的集合,当数据的量为0时,称为空树。
在一个非空树T中,最上方的结点没有前驱结点,称为根节点。在一个数据量大于1的树中,除了根节点之外的其余数据元素可以被分为m个互不相交的集合T1,T2,T3等。其中每一个集合T都可以看作一个单独的树,称为整个树的子树。
树拥有层级结构,而这种层级结构由递归实现。从根节点开始,根节点为第一层。经过一次递归得到的结点称为第二层,以此类推。而如果同一层的节点之间互相连通,则不成为树结构。
也就是说,树结构的每一层之间都至少有两个节点互相连通,而同一层之间的每一个结点都不能互相连通。
树的基本术语:
结点的度 | 结点的分支数 |
叶子 | 度为0的结点 |
结点的层次 | 根节点的度为1,根节点的子树为第2层 |
树的度 | 树中所有结点的度的最大值 |
树的深度 | 树中所有结点层次的最大值 |
有序树 | 每颗子树的左右顺序不可更换 |
无序树 | 每颗子树的左右顺序可以更换 |
森林 | m个互不相交的树的集合 |
二叉树
二叉树的特点:
(1) 每个结点最多有两棵子树
(2) 子树有左右之分
如果一个深度为的二叉树的节点数为最大值则称为满二叉树。
若有一颗深度为,节点数为的二叉树,将它与同一颗同深度的满二叉树中的所有结点从上到下、从左到右的顺序进行编号。如果该二叉树中的每一个节点分别与满二叉树中编号为1~的结点位置一一对应,则称该二叉树为完全二叉树。
二叉树的性质:
(1)在二叉树的第层上最多有个结点()
(2)深度为的二叉树最多有个结点()
(3)对于任意一颗二叉树,如果度为的结点为个,度为的结点为个,则
(4)具有个结点的完全二叉树中的所有结点从上到下、从左到右的顺序编号,则对任意一个结点,都有:
①如果,则结点是这颗完全二叉树的根,没有双亲。如果,则其双亲接待你的编号为
②如果,则结点没有左孩子,如果,则其左孩子结点的编号为
③如果,则结点没有有孩子,如果,则其右孩子结点的编号为