From deb397ed1ed068cf578bd3b9d3de083b928a6f0f Mon Sep 17 00:00:00 2001 From: Bill Jacobs Date: Tue, 31 May 2016 23:07:52 -0700 Subject: [PATCH] Changed fixInsertion to always augment parent This changes fixInsertion to always augment the node's parent, even if the initial call to augment() returns false, assuming "augment" is true. When we insert a node, we are supposed to ignore its initial state; thus, we ignore the return value of augment(). --- RedBlackNode.jar | Bin 43422 -> 43393 bytes .../btrekkie/red_black_node/RedBlackNode.java | 8 ++------ 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/RedBlackNode.jar b/RedBlackNode.jar index 2cd9a1ecf0d0a533dd961254e369d1b8a08770d4..1cb1d9866eb60a42e3caf5c9481b16f0f2967ffe 100644 GIT binary patch delta 9224 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 U9OcSzypVu$3S`XOH~+@}0HNE)`Tzg` delta 9236 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 diff --git a/src/com/github/btrekkie/red_black_node/RedBlackNode.java b/src/com/github/btrekkie/red_black_node/RedBlackNode.java index 26fbaffe7..1f9959196 100644 --- a/src/com/github/btrekkie/red_black_node/RedBlackNode.java +++ b/src/com/github/btrekkie/red_black_node/RedBlackNode.java @@ -242,11 +242,9 @@ public abstract class RedBlackNode> implements Compara if (!isRed) { throw new IllegalArgumentException("The node must be red"); } - boolean changed; + boolean changed = augment; if (augment) { - changed = augment(); - } else { - changed = false; + augment(); } RedBlackNode node = this; @@ -569,7 +567,6 @@ public abstract class RedBlackNode> implements Compara parent.right = child; } } - parent = null; child.isRed = false; if (child.parent != null) { N parent; @@ -590,7 +587,6 @@ public abstract class RedBlackNode> implements Compara parent.right = leaf; sibling = parent.left; } - this.parent = null; if (!isRed) { RedBlackNode siblingNode = sibling; siblingNode.fixSiblingDeletion();