From 705d5cfa17e93e0d8990ab3a7c328f7dcbf625a3 Mon Sep 17 00:00:00 2001 From: Matej Focko Date: Thu, 12 May 2022 12:20:24 +0200 Subject: [PATCH] fix: do not allow duplicit keys Signed-off-by: Matej Focko --- node.py | 7 ++++++- ranked_tree.py | 3 +++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/node.py b/node.py index e2eafad..0669d4b 100644 --- a/node.py +++ b/node.py @@ -146,7 +146,12 @@ class Node(Generic[T]): while new_node and (missing or new_node.value != value): node = new_node - new_node = node.left if value < node.value else node.right + if value < node.value: + new_node = node.left + elif node.value < value: + new_node = node.right + else: + return None return node diff --git a/ranked_tree.py b/ranked_tree.py index 42358f0..e3ad76b 100644 --- a/ranked_tree.py +++ b/ranked_tree.py @@ -82,6 +82,9 @@ class RankedTree(Generic[T]): return parent = Node.find_parent_node(value, self.root) + if not parent: + return + inserted_node.parent = parent if value < parent.value: