构建二叉搜索树bst
binaryt search tree construction
- insert
- search
- delete
二叉查找树,根节点比所有左节点大,比右节点小
构建一颗二叉搜索树,实现二叉搜索树的插入,搜索,删除操作
insert
假设是上面的那个树,要插入的元素是12
根节点10比12小,因此根节点及左边部分不用修改,专注于右子树
由于12比15小,因此专注于15节点的左子树,一直往下走,成为13节点的左节点。此时完成整个插入操作;
search
二叉查找树找元素,根据二叉查找树的性质,比较容易的找到或者找不到该元素。
delete
二叉查找树删除元素,根据二叉查找树的性质,比较容易的找到对应的元素以及其父节点。此时会有几种情况
- 如果该删除节点无左右子树,直接将该节点的值设置为None
- 如果该删除节点有左子树和右子树时候,此时应该去右子树中找最小的值放到该位置,然后让最小