4.1树
树的性质:
1) 树中的结点数等于所有结点的度数加1
2) 度为m的树中第i层上至多有m^(i-1)个结点(i>=1)
3) 高度为h的m叉树至多有(m^h-1)/(m-1)个结点
4) 具有n个结点的m叉树的最小高度为|- logm(n(m-1)+1) -|(取上限)
求解数结点和度之间的关系有:
1) 总结点数=N0+N1+N2+…….Nm
2) 总分支数=1xN1+2xN2+……+mxNm(度为m的结点引出m条分支)
3) 总结点数=总分支数+1
4.2树和二叉树
二叉树的性质:
1) 非空二叉树上叶子结点数等于度为2的结点数加1即N0=N2+1
2) 非空二叉树第K层上至多有2^(k-1)个结点(K>=1)
3) 高度为H的二叉树至多有2^H-1个结点(H>=1)
二叉树和度为2的有序树的区别:
1) 度为2的树至少有3个结点,而二叉树可以为空。
2) 度为2的有序树的孩子结点的左右次序是相对于另一孩子结点而言的,如果某个结点只有一个孩子结点,这个孩子结点就无须区分其左右次序,而二叉树无论其孩子数是否为2均需确定其左右次序,也就是说二叉树的结点次序不是相对于另一结点而言,而是确定的。
满二叉树(是特殊的完全二叉树):一颗高度为h,并且含有2*h-1个结点的二叉树称为满二叉树,即树中每一层都含有最多的结点。
完全二叉树:设一个高度为h,有n个结点的二叉树,当且仅当其每个结点都与高度为h的满二叉树中编号为1~n的结点一一对应时,称为完全二叉树。
1) 若i <=|_ n/2 _|,则结点i为分支结点,否则为叶子结点。
2) 叶子结点只可能在层次最大的两层的上出现。对于最大层次中的叶子结点,都依次排列在该层最左边的位置上。
3) 如果有度为1的结点,只可能有一个,且该结点只有左孩子而无右孩子。(重要特征)。
4) 按层序编号后,一旦出现某结点(其编号为i)为叶子结点或只有左孩子,则编号大于i的结点均为叶子结点。(意思是度为1的结点只可能出现在倒数第二层)
5) 若n为奇数,则每个分支结点都有左子女和右子女;若n为偶数,则编号最大的分支结点(n/2)只有左子女,没有右子女,其余分支结点左,右子女都有。
完全二叉树的性质:
1) 当i>1时,结点i的双亲编号为|_ i/2 _|(取下限),即当i为偶数时,其双亲结点编号为 i/2,它是双亲结点的左孩子;当i为奇数时,其双亲结点编号为(i-1)/2 ,它是双亲结点的右孩子。
2) 当2i<=N时,结点i的左孩子编号为2i,否则无左孩子
3) 当2i+1<=N时,结点i的右孩子编号为2i+1,否则无右孩子
4) 结点i所在层次(深度)为|_ log2i _|+1(取下限)
5) 具有N个(N>0)结点的完全二叉树的高度为|- log2(N+1) -|(取上限)或|_ log2N_|+1(取下限)
二叉排序树:一颗二叉树或者是空二叉树,或者是具有如下性质的二叉树:左子树上的所有结点关键字均小于根结点的关键字;右子树上的所有结点的关键字均大于根结点的关键字。左子树和右子树又各是一个二叉排序树。
平衡二叉树:树上任一结点的左子树和右子树深度之差不超过1
线索二叉树
目的:为了加快查找结点前驱和后继的速度。(通过利用n+1个空指针域)