Algorithm - BinarySortTree

 

二叉搜索树 ( 二叉排序树 )

特性:

1. 左子树比根节点小, 右子树比根节点大

2. 不存在相同值得节点

3. 查找一个值的效率相当于二分查找法

 

添加节点

1. 插入节点 node, 从根部开始 不断跟当前节点进行比较, 如果大于当前节点, 则继续遍历右子树, 否则便利左子树

2. 直到碰见空节点, 则插入

 

删除节点:

1. 若该节点不存在左右孩子, 删除不影响其他节点的构造, 则可以直接删除

2. 如果该节点存在左孩子或者右孩子, 则直接拿孩子替换掉该位置即可

3. 如果该节点存在左孩子和右孩子,  则

     1). 该点的右继p 是该点的右孩子, 则直接用p替换掉该点

     2). 如果该点的右继p 不是该点的右孩子, 则用p的右孩子替换p, 再用p替换该点

      

 

posted @ 2018-10-04 20:55  `Laimic  阅读(115)  评论(0)    收藏  举报