java红黑树操作问题、求大神指点
求大神指点
问题如下:
(此为java Treemap的deleteEntry源码)
private void deleteEntry(Entry<K,V> p) {
modCount++;
size--;
// If strictly internal, copy successor's element to p and then make p
// point to successor.
if (p.left != null && p.right != null) {
Entry<K,V> s = successor(p);
p.key = s.key; //1、
p.value = s.value; //2、
p = s; //3、在上面1、2处是不是多余操作了?既然都直接将s覆盖p了,
//为何还用1、2的操作?这样是有何用意呢?
} // p has 2 children
// Start fixup at replacement node, if it exists.
Entry<K,V> replacement = (p.left != null ? p.left : p.right);
if (replacement != null) {
// Link replacement to parent
replacement.parent = p.parent;
if (p.parent == null)
root = replacement;
else if (p == p.parent.left)
p.parent.left = replacement;
else
p.parent.right = replacement;
// Null out links so they are OK to use by fixAfterDeletion.
p.left = p.right = p.parent = null;
// Fix replacement
问题如下:
(此为java Treemap的deleteEntry源码)
private void deleteEntry(Entry<K,V> p) {
modCount++;
size--;
// If strictly internal, copy successor's element to p and then make p
// point to successor.
if (p.left != null && p.right != null) {
Entry<K,V> s = successor(p);
p.key = s.key; //1、
p.value = s.value; //2、
p = s; //3、在上面1、2处是不是多余操作了?既然都直接将s覆盖p了,
//为何还用1、2的操作?这样是有何用意呢?
} // p has 2 children
// Start fixup at replacement node, if it exists.
Entry<K,V> replacement = (p.left != null ? p.left : p.right);
if (replacement != null) {
// Link replacement to parent
replacement.parent = p.parent;
if (p.parent == null)
root = replacement;
else if (p == p.parent.left)
p.parent.left = replacement;
else
p.parent.right = replacement;
// Null out links so they are OK to use by fixAfterDeletion.
p.left = p.right = p.parent = null;
// Fix replacement
...全文
相关推荐
红黑树java操作代码 红黑树是java里面遍历性能最好数据结构
下面将详细介绍红黑树的概念、性质以及如何在Java中实现它。**1.
红黑树-动态演示生成红黑树
在编程语言如C++、Java和Python中,红黑树常被用作标准库的一部分,提供高效的数据管理服务。总结来说,红黑树是一种重要的数据结构,它的动态演示是理解和掌握其工作原理的有效工具。
红黑树Java实现
了解并掌握红黑树的原理和实现对于开发高效的数据结构和算法至关重要。在Java编程中,能够实现红黑树意味着具备了高级数据结构的处理能力,这对于解决复杂问题和优化程序性能非常有利。
红黑树的Java实现参考源码
在Java实现中,红黑树的核心类是`java.util.TreeMap.Node`,这个类代表树中的一个节点,包含键值对以及颜色属性。插入操作会遵循以下步骤:1.
基于红黑树插入操作原理及java实现方法(分享)
Java的TreeMap就是通过红黑树实现的。红黑树的操作如果不画图很容易搞糊涂,下面通过图示来说明红黑树的插入操作。插入一个红色的节点到红黑树中之后,会有6种情况:1.


Java SE
