题目
若在一棵(分类)平衡树T中先删除某结点N,然后再插入该结点N,得到的新的平衡树T1,则T和T1不一定相同。但是如果在T上先插入结点M,然后再删除M结点,那么得到的新的平衡树T2一定与T完全相同()
A.对
B.错
解答
正确答案是 B
平衡树左右子树的高度差的绝对值不超过 1(左右子树的高度差为该结点的平衡因子,只能取 -1, 0, 1), 且其左右子树也是平衡树。
向平衡树中插入结点时,该结点一定是插入在叶子节点上的,这时需要检查平衡树的各结点的平衡因子,如果有平衡因子的绝对值大于 1的结点存在 , 就需要调整结点使其再次满足平衡树的性质。删除结点的时候也要检查平衡树的性质是否被破坏,然后做出相应的调整,具体的调整方法在这里就不再赘述。
综上,如果删除的结点N是叶子结点且删除之后平衡树不会涉及调整,那么再次插入该结点,树是相同的,否则就不同。同理,先插入结点M,若其不改变平衡树的性质,再删除结点M,树是相同的,否则就会不同。
学到了,原来是这样
完全是在考察语文逻辑。
不论是删除还是插入,一旦打破平衡树的平衡属性,则不然会引起旋转。一旋转,树的结构就会发生变化。
原来是AVL树,题目看成是二叉排序树,所以选了对的
因为平衡二叉树插入的节点不一定在叶子上,注意是平衡二叉树
插入的节点不一定在叶子节点上