一、二叉搜索树特点
对于树中的每个节点X,它的左子树中所有关键字的值小于X的关键字值,而它的右子树中所有关键字值都大于X的关键字值
根据这个特性,对一个二叉树进行中序遍历,如果时单调递增的,则可以说明这个数二叉搜索树
重点操作有插入、删除
插入:
1、从根节点开始,遇键值较大则向左走,与键值较小则向右走,直至尾部,即插入点
删除:
1、如果存在于叶子节点,直接删除即可
2、删除的节点只有一个子节点,则将子节点连至父节点的即可(可以视为将子节点替换掉删除节点的位置)
3、删除的节点有两个子节点,这时需将右子树的最小值替换掉删除节点即可,最小节点可通过删除节点右子树一直向左走到底获得,
二、平衡二叉搜索树
发生的情况:当对二叉树进行插入或者删除的时候,有可能造成二叉搜索树失去平衡,造成搜寻效率低落的情况。
插入:
当向二叉搜索树插入一个节点分为ie四种情况
1、插入节点位于X的左子节点的左子树--左左
2、插入节点位于X的左子节点的右子树--左右
3、插入节点位于X的右子节点的左子树--右左
4、插入节点位于X的右子节点的右子树--右右
情况1、4彼此对称,称为外侧插入,采用单旋转操作即可调整
情况2、3彼此对成,称为内侧插入,可以采用双旋转(执行两次单旋转)操作调整
三、红黑树
红黑树不仅时一个二叉搜索树,还必须满足以下规则
1、每个节点不是红色就是黑色
2、根节点一定为黑色
3、如果节点三红色,则子节点必须为黑色
4、任一节点至NULL(树尾端)的任何路径,所含之黑节点树必须相同。