二叉搜索树、平衡二叉树、红黑树

一、二叉搜索树特点

  对于树中的每个节点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(树尾端)的任何路径,所含之黑节点树必须相同。

猜你喜欢

转载自www.cnblogs.com/socks/p/12768003.html