Algorithm - BinarySortTree
二叉搜索树 ( 二叉排序树 )
特性:
1. 左子树比根节点小, 右子树比根节点大
2. 不存在相同值得节点
3. 查找一个值的效率相当于二分查找法
添加节点
1. 插入节点 node, 从根部开始 不断跟当前节点进行比较, 如果大于当前节点, 则继续遍历右子树, 否则便利左子树
2. 直到碰见空节点, 则插入
删除节点:
1. 若该节点不存在左右孩子, 删除不影响其他节点的构造, 则可以直接删除
2. 如果该节点存在左孩子或者右孩子, 则直接拿孩子替换掉该位置即可
3. 如果该节点存在左孩子和右孩子, 则
1). 该点的右继p 是该点的右孩子, 则直接用p替换掉该点
2). 如果该点的右继p 不是该点的右孩子, 则用p的右孩子替换p, 再用p替换该点