Retour

Recherche d'une clé dans un Abre Binaire

Principe

On parcours l'arbre en comparant la valeur recherchée avec les différents noeuds jusqu'à trouver la valeur ou atteindre une feuille (dans ce cas la valeur n'est pas présente dans l'arbre).

Algorithme

Text Only
VARIABLES
T : arbre
x : noeud
k : entier

DEBUT
ARBRE-RECHERCHE(T,k) :
  si T == vide :
    renvoyer faux
  fin si
  x ← T.racine
  si k == x.clé :
    renvoyer vrai
  fin si
  si k < x.clé :
    ARBRE-RECHERCHE(x.gauche,k)
  sinon :
    ARBRE-RECHERCHE(x.droit,k)
  fin si
FIN

Implémentation en Python

🐍 Script Python
def ArbreRecherche(T: tree, k: int):
    if T == None:
        return False
    x = T[0]
    if k == x.value:
        return True
    if k < x.value:
        ArbreRecherche(x.left, k)
    else:
        ArbreRecherche(x.right, k)

Complexité

  • Pire des cas (arbre complet) : $$ O(log.2(n)) $$

  • Meilleur des cas (arbre filiforme) : $$ O(n) $$