ÎncepețiÎncepe gratuit

Inserarea unui nod într-un arbore binar de căutare

În videoclip, ai aflat ce sunt arborii binari de căutare (BST) și cum să implementezi operațiile lor principale.

În acest exercițiu, vei implementa o funcție pentru a insera un nod într-un BST.

Pentru a testa codul, poți folosi următorul arbore:

Graphical representation of a binary search tree.

Nodurile conțin titluri de cărți, construind un BST bazat pe ordinea alfabetică.

Acest arbore a fost preîncărcat în variabila bst:

bst = CreateTree()

Poți verifica dacă nodul este inserat corect cu acest cod:

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

Acest exercițiu face parte din cursul

Structuri de date și algoritmi în Python

Vezi cursul

Instrucțiuni pentru exercițiu

  • Verifică dacă arborele BST este gol.
  • Verifică dacă datele de inserat sunt mai mici decât datele nodului curent.
  • Verifică dacă datele de inserat sunt mai mari decât datele nodului curent.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

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"))
Editează și rulează codul