Skip to content
Snippets Groups Projects
Verified Commit 126d9c93 authored by orestis.malaspin's avatar orestis.malaspin
Browse files

updated with search

parent cc33d36f
No related branches found
No related tags found
No related merge requests found
......@@ -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.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment