java数/森林操作 无序树,比较是否相等,忽略孩子结点次序

如题所述

什么是树

树是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=n12

    4、n个结点的完全二叉树的深度为 logn2(取下整数)+1 
    i>1,n(i)的双亲为i/2(取下整数) 
    2i>n,没左孩子,2i+1>n,没右孩子 
    2i<=n,左孩子为2i,2i>n,右孩子为2i+1

温馨提示:答案为网友推荐,仅供参考