摘要: 删除 首先,搜索要删除的节点。 情况一:如果该节点左子节点是nil,删除后让右子节点顶替该节点的位置即可。 情况二:如果该节点右子节点是nil,删除后让左子节点顶替该节点的位置即可。 情况三:如果该节点左右节点都不为nil,则查询其后继节点,即右节点中最小的节点,让其顶替该节点,颜色设置为被删除节点 阅读全文
posted @ 2020-05-27 16:35 会飞的joy 阅读(106) 评论(0) 推荐(0) 编辑
摘要: 在详解红黑树前要先需要了解旋转操作, 旋转 不改变颜色,仅仅改变节点的位置,来做出调整二叉树的结构,使其达到相对平衡 插入 找到要插入的位置,将其插入,并设置成红色,(该节点插入后一定是叶子节点,具体可看二叉搜索树的插入)。一位新插入节点是红色,所以可能存在父节点也是红色,违反了性质4,而且如果新插 阅读全文
posted @ 2020-05-27 16:31 会飞的joy 阅读(109) 评论(0) 推荐(0) 编辑
摘要: 红黑树首先要满足二叉搜索树的性质。 然后要满足以下五大性质。 每个节点或是红色,或是黑色 根节点总是黑色 每个节点nil是黑色的 (感觉这条可有可无) 如果一个节点是红色,子节点一定是是黑色 每个节点的黑高都相等 标准的红黑树 省略NIL节点的红黑树 注:目前没有发现NIL节点的必要性 阅读全文
posted @ 2020-05-27 16:28 会飞的joy 阅读(176) 评论(0) 推荐(0) 编辑