BST

2018-02-10  本文已影响0人  gyDBD

BST的优秀性质!

All the sub-tree are BST

All elements in left sub-tree is small than root

All elements in Right sub-tree is larger than root

If we do InOrder traversal, the result of BST is a sorted array

find:

十分简单,往左走往右走

加一个点,如同搜索,只是要注意留住父亲的位子

删除我们总是要保证仍旧满足Inorder是升序!

删除节点的思路比较难,首先要定位到那个地方,然后分三种情况

如果左右都Null,也就是说明他是个叶子,那么我们可以直接删除

如果左右有一个是Null,那我们那就用另一边来顶替他的位子

如果左右都不是Null,那我们得找到左子树的最右下角的树来替换,但是注意只是值换掉,而不是整个点搬上去,树的结构并不会大变。注意被替换掉的数,也要进行删除的,所以说存在不能一直走下去,要保留原来的点的父亲在!所以是while(node.right.right!=null)!

上一篇下一篇

猜你喜欢

热点阅读