diff --git a/src/BTree.py b/src/BTree.py
index 4a838d50bfd7e54380749db8a2b1a17760ea4777..6bb1dc813ad5cc274a6d05934432a206c54219ef 100644
--- a/src/BTree.py
+++ b/src/BTree.py
@@ -53,6 +53,8 @@ class Btree() :
         """
         return self.root.linearisation()
             
+    def isBalance():
+        (truc, _, _, _) = self.root.is_ArbreB(True)
             
     def __repr__(self) :
         return f"Btree({self.root})"
diff --git a/src/Node.py b/src/Node.py
index aa69412b7a4a7a56ff12dae8535444149476fb90..46c25371f53df0c70a1cc5ed9c3860c5f840d13f 100644
--- a/src/Node.py
+++ b/src/Node.py
@@ -38,6 +38,32 @@ class Node() :
             return None
         else :
             return self.childs[index].search(value)
+        
+        
+    def is_ArbreB(self, is_root = False):
+        ok = (is_root or (self.k//2) <= len(self.keys)) and len(self.keys) <= self.k
+        ok = ok and all(self.keys[i] < self.keys[i+1] for i in range(len(self.keys) - 1))
+        if (self.isLeaf()):
+            height = 0
+            mini, maxi = self.keys[0], self.keys[-1]
+        else:
+            results = [child.is_ArbreB( False ) for child in self.childs]
+            mins = [mini for (_, _, mini, _) in results]
+            mqxs = [mqxi for (_, _, _, mqxi) in results]
+            ok = ok and all(cle[i] > maxs[i] and cel[i] < mins[i+1] for i in range(len(cles) - 1))
+            print(results)
+            for r in range(0, len(results)-1):
+                (ok, h, mini, maxi) = results[i]
+                if (ok == False):
+                    return False
+                (ok_tmp, h_tmp, maxi_tmp, mini_tmp) = results[i+1]
+                if (h != h_tmp):
+                    return False
+                if (m
+                
+
+        return (ok, height, mini, maxi)
+        
     
     def insert(self, value):
         """