From 126d9c930e2cf41ee2d4df602ff422a3a6d7e2ca Mon Sep 17 00:00:00 2001
From: Orestis <orestis.malaspinas@pm.me>
Date: Sun, 20 Feb 2022 23:54:08 +0100
Subject: [PATCH] updated with search

---
 slides/cours_15.md | 64 +++++++++++++++++++++++++++++++++++++++++++---
 1 file changed, 60 insertions(+), 4 deletions(-)

diff --git a/slides/cours_15.md b/slides/cours_15.md
index 3ab8419..cbd291e 100644
--- a/slides/cours_15.md
+++ b/slides/cours_15.md
@@ -764,15 +764,71 @@ sous-arbres de gauche et de droite.
 
 ```python
 arbre recherche(clé, arbre)
-    tante que est_non_vide(arbre)
-        si clé < arbre.clé
+    tante_que est_non_vide(arbre)
+        si clé < clé(arbre)
             arbre = gauche(arbre)
-        sinon si clé > arbre.clé
+        sinon si clé > clé(arbre)
             arbre = droite(arbre)
         sinon
             retourne arbre
     retourne NULL
-    
 ```
 
+# Algorithme de recherche, implémentation (live)
+
+\footnotesize
+
+. . .
+
+```C 
+typedef int key_t;
+typedef struct _node {
+    key_t key;
+    struct _node* left;
+    struct _node* right;
+} node;
+typedef node* tree_t;
+tree_t search(key_t key, tree_t tree) {
+    tree_t current = tree;
+    while (NULL != courant && !success) {
+        if (current->key > X) {
+            current = courant->gauche;
+        } else if (current->key < X){
+            current = courant->droite;
+        } else {
+            return current;
+        }
+    }
+    return NULL;
+}
+```
+
+# Exercice (5-10min)
+
+Écrire le code de la fonction
+
+```C 
+int tree_size(tree_t tree);
+```
+
+qui retourne le nombre total de noeuds d'un arbre et poster le résutat sur
+matrix.
+
+Indication: la taille, est 1 + le nombre de noeuds du sous-arbre de gauche
+additionné au nombre de noeuds dans le sous-arbre de droite.
+
+. . .
+
+```C
+int arbre_size(tree_t tree) {
+    if (NULL == tree) {
+        return 0;
+    } else {   
+        return 1 + tree_size(tree->left) + tree_size(tree->right);
+    }
+}
+```
+
+
+
 [^1]: Copyright cours de mathématiques pendant trop d'années.
-- 
GitLab