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

updated with search

parent cc33d36f
Branches
No related tags found
No related merge requests found
Pipeline #15687 passed
...@@ -764,15 +764,71 @@ sous-arbres de gauche et de droite. ...@@ -764,15 +764,71 @@ sous-arbres de gauche et de droite.
```python ```python
arbre recherche(clé, arbre) arbre recherche(clé, arbre)
tante que est_non_vide(arbre) tante_que est_non_vide(arbre)
si clé < arbre.clé si clé < clé(arbre)
arbre = gauche(arbre) arbre = gauche(arbre)
sinon si clé > arbre.clé sinon si clé > clé(arbre)
arbre = droite(arbre) arbre = droite(arbre)
sinon sinon
retourne arbre retourne arbre
retourne NULL 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. [^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