本文主要是介绍树是什么?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
树
是一种非线性结构,存储的是具有“一对多”关系的数据元素的集合
下面列举一些树的相关定义
- 结点:树中的每一个数据元素都被成为“结点”
- 根结点:每一个非空树有且只有一个根节点(如果一个结点没有父结点,那么它就是这棵树的根结点)
- 叶子结点:如果结点没有任何子结点,那么此结点称为叶子结点(叶结点),其度为0
- 子树:其实就是以根结点的子结点为根节点组成的树(这里就可以认为,树是由根结点和子树组成)
- 空树:空树中没有结点
- 结点的度:对于一个结点,拥有的子树的个数就是结点的度
- 结点的层次:举例:根结点在第一层,然后其子结点在第二层,字结点的子结点在第三层,依次类推。。。。
- 有序树、无序树:树种结点的子树,从左往右,如果有规定,那么这棵树就是有序树,否则就是无序树
- 森林:互不相交的树组成森林,举例:如果一个根节点下面有三个子结点,那么这三个子结点就是三个子树,这三个子树互相相交,就组成了森林。
二叉树
定义:
- 是有序树
- 树中的每个结点的度最大为2,即可以是0、1或者2
性质:
- 二叉树中,第 i 层最多有 2i-1 个结点
- 假设二叉树的深度为 K ,那么二叉树最多有 2K-1 个结点
二叉树又可以细分:满二叉树、完全二叉树
-
满二叉树:除了叶子结点,每个结点的度都为 2,则此二叉树称为满二叉树。
满二叉树中,第 i 层有 2i-1 个结点
假设满二叉树的深度为 K ,那么二叉树有 2K-1 个结点
满二叉树中不存在度为 1 的节点,每一个分支点中都两棵深度相同的子树,且叶子节点都在最底层。 -
完全二叉树:在二叉树中除去最后一层节点,其余看起来是满二叉树,且最后一层的结点依次从左到右分布,那么这个二叉树就是完全二叉树。
这篇关于树是什么?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!