为了进一步了解RB树,先了解一下二叉查找树
定义:
二叉查找树是一棵二叉树,因此可以用链式结构来存储数据。若二叉查找树不为空,则应具有以下性质:
- 关键字的值唯一
- 若左子树不为空,则子树任何节点关键字值一定小于其根节点的关键字值
- 若右子树不为空,则子树任何节点关键字值一定大于其根节点的关键字值
- 左、右子树任然是二叉查找树
结构示意图
查找节点:
- 若二叉查找树为空,则查找失败
- 若该树非空且查找数据x等于根节点的值,则查找成功,返回根节点
- 若该树非空且查找数据x小于根节点的值,则查找左子树,直到值相等,并返回节点
- 若该树非空且查找数据x大于根节点的值,则查找右子树,直到值相等,并返回节点