什么是树
树是n个结点的有限集合(n>=0);
树只有一个根节点(root);
n>1时除了root外每个集合都是子树;
术语
结点:包括一个数据和指向若干结点的分支。
结点的度:结点拥有子树的个数(为0则是叶子结点)。
树的度:树中的最大度的结点的度数。
孩子:结点子树的根。
双亲:结点A的子树的根是孩子,这个结点A就是孩子是双亲。
兄弟:一个双亲的不同孩子互称兄弟。
深度:结点最大的层次。(根为第一层)
有序树:某结点的不同孩子的左右顺序不能变换。
无序树:某结点的不同孩子的左右顺序可以变换。
森林:m棵互不相交的树的集合。
二叉树:
概念:
- 每个结点最多有两个子树
- 这两个子树左右不可互换
形态(五种):
空树、只有根、根+左孩子、根+右孩子、根+左右孩子
满二叉树:
只有度为0和度为2的结点,而且每一层的叶子都是满的。
完全二叉树:
只有度为0和度为2的结点。
性质:
1、第i层最多有2的i-1次方个结点;
2、深度为k的二叉树最多有2的k次方减1个结点;
3、叶子有n0个、度为2的结点有n2个,那么n0=n2+1;
2*n2+n1+1=n
n2+n1+n0=n
4、n个结点的完全二叉树的深度为
logn2(取下整数)+1
i>1,n(i)的双亲为i/2(取下整数)
2i>n,没左孩子,2i+1>n,没右孩子
2i<=n,左孩子为2i,2i>n,右孩子为2i+1