CommencerCommencer gratuitement

Insérer un nœud dans un arbre de recherche binaire

Dans la vidéo, vous avez appris ce que sont les arbres de recherche binaires (BST) et comment mettre en œuvre leurs principales opérations.

Dans cet exercice, vous mettrez en œuvre une fonction permettant d'insérer un nœud dans un site BST.

Pour tester votre code, vous pouvez utiliser l'arbre suivant :

Représentation graphique d'un arbre de recherche binaire.

Les nœuds contiennent des titres de livres, ce qui permet de construire un site BST basé sur l'ordre alphabétique.

Cet arbre a été préchargé dans la variable bst:

bst = CreateTree()

Vous pouvez vérifier si le nœud est correctement inséré à l'aide de ce code :

bst.insert("Pride and Prejudice")
print(search(bst, "Pride and Prejudice"))

Cet exercice fait partie du cours

Structures de données et algorithmes en Python

Afficher le cours

Instructions

  • Vérifiez si le site BST est vide.
  • Vérifie si les données à insérer sont plus petites que les données du nœud actuel.
  • Vérifie si les données à insérer sont supérieures aux données du nœud actuel.

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

class BinarySearchTree:
  def __init__(self):
    self.root = None

  def insert(self, data):
    new_node = TreeNode(data)
    # Check if the BST is empty
    if ____ == None:
      self.root = new_node
      return
    else:
      current_node = self.root
      while True:
        # Check if the data to insert is smaller than the current node's data
        if ____ < ____:
          if current_node.left_child == None:
            current_node.left_child = new_node
            return 
          else:
            current_node = current_node.left_child
        # Check if the data to insert is greater than the current node's data
        elif ____ > ____:
          if current_node.right_child == None:
            current_node.right_child = new_node
            return
          else:
            current_node = current_node.right_child

bst = CreateTree()
bst.insert("Pride and Prejudice")
print(search(bst, "Pride and Prejudice"))
Modifier et exécuter le code