From 1475112de23b7b98bade483f4194b14230e1dd17 Mon Sep 17 00:00:00 2001
From: Mamadu Lamarana BAH <mamadulamarana.bah.etu@univ-lille.fr>
Date: Thu, 28 Mar 2024 09:27:47 +0100
Subject: [PATCH] resol conflicts

---
 src/Node.py | 50 ++++++++++++++++++++++++--------------------------
 1 file changed, 24 insertions(+), 26 deletions(-)

diff --git a/src/Node.py b/src/Node.py
index c05ca3e..6c5fe0a 100644
--- a/src/Node.py
+++ b/src/Node.py
@@ -96,12 +96,12 @@ class Node() :
         (Node([50, 52]), 1)
         >>> node = Node([12, 42], [Node([2, 3]), Node([25]), Node([50])])
         >>> node.insert(1, 2)
-        (False, 12, Node([2]), Node([42]))
+        (False, 12, Node([2], [Node([1]), Node([3])]), Node([42], [Node([25]), Node([50])]))
         >>> node.search(1)
         (Node([1]), 0)
         >>> node = Node([12, 42], [Node([2, 4], [Node([0, 1]), Node([3]), Node([7, 8])]), Node([25]), Node([50])])
         >>> node.insert(6, 2)
-        (False, 12, Node([4]), Node([42]))
+        (False, 12, Node([4], [Node([2], [Node([0, 1]), Node([3])]), Node([7], [Node([6]), Node([8])])]), Node([42], [Node([25]), Node([50])]))
         
         >>> node = Node([12, 42], [Node([2, 3, 4]), Node([25]), Node([50])])
         >>> node.insert(1, 3)
@@ -159,33 +159,32 @@ class Node() :
         else:
             (ok) = self.childs[index].suppression(value, k, False)
             if (not ok):
-                if(index - 1 >= 0 and (len(self.childs[index-1].keys) >= k//2)):
+                if(index - 1 >= 0 and (len(self.childs[index-1].keys) - 1 >= k//2)):
                     borrowed = self.childs[index-1].keys.pop()
                     replaced = self.keys.pop(0)
                     self.keys.insert(0, borrowed)
                     self.childs[index].keys.insert(0, replaced)
-                elif(index + 1 < len(self.childs) and (len(self.childs[index+1].keys) >= k//2)):
-                    borrowed = self.childs[index+1].keys.pop(0)
+                elif(index + 1 < len(self.childs) and (len(self.childs[index+1].keys) - 1 >= k//2)):
+                    borrowed = self.childs[index+1].keys.pop()
                     replaced = self.keys.pop()
-                    self.keys.insert(len(self.keys), borrowed)
-                    self.childs[index].keys.insert(len(self.childs), replaced)
-        
-        
-        return ok
-                
-    
-#     def suppr(self, value, k) :
-#         """
-#         >>> a = Node([12, 42], [Node([3]), Node([25]), Node([50])])
-#         >>> a.suppr(11)
-#         False
-#         """
-#         found = self.search(value)
-#         if (found) :
-#             return None
-#         else :
-#             return False
+                    self.childs[index].keys.insert(len(self.keys), borrowed)
+                    self.childs[index].keys.insert(len(self.childs[index].keys), replaced) # len(self.childs)
+                else:
+                    if(index-1 >= 0):
+                        replaced = self.keys.pop(index-1)
+                        borrowed = self.childs[index-1].keys.pop()
+                        self.childs[index].keys.insert(len(self.childs[index].keys), replaced)
+                        self.childs[index].keys.insert(0, borrowed)
+                        del self.childs[index-1]
+                    elif(index + 1 < len(self.childs)):
+                        replaced = self.keys.pop(index)
+                        borrowed = self.childs[index+1].keys.pop()
+                        self.childs[index].keys.insert(0, borrowed)
+                        self.childs[index].keys.insert(len(self.childs[index].keys), replaced)
+                        del self.childs[index+1]
+                ok = not ok
         
+        return ok        
         
     def splitNode(self) :
         """
@@ -220,8 +219,7 @@ class Node() :
             res.extend(self.childs[len(self.childs)-1].linearisation())
         return res
         
-    
-    
+        
     def __repr__(self) :
         return (f"Node({self.keys}"
                 + (f", {self.childs})" if len(self.childs) > 0 else ")"))
@@ -229,4 +227,4 @@ class Node() :
               
 if __name__ == '__main__':
     import doctest
-    doctest.testmod(verbose=False)
+    doctest.testmod(verbose=False)
\ No newline at end of file
-- 
GitLab