Začněte nyníZačněte zdarma

Vkládání uzlu do binárního vyhledávacího stromu

Ve videu sis osvojil/a, co jsou binární vyhledávací stromy (BST) a jak implementovat jejich hlavní operace.

V tomto cvičení implementuješ funkci pro vložení uzlu do BST.

Svůj kód můžeš otestovat na následujícím stromě:

Graphical representation of a binary search tree.

Uzly obsahují názvy knih a BST je sestavený na základě abecedního pořadí.

Tento strom je předem načtený v proměnné bst:

bst = CreateTree()

Správnost vložení uzlu můžeš ověřit tímto kódem:

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

Toto cvičení je součástí kurzu

Datové struktury a algoritmy v Pythonu

Zobrazit kurz

Pokyny k cvičení

  • Zjisti, zda je BST prázdný.
  • Zkontroluj, zda jsou vkládaná data menší než data aktuálního uzlu.
  • Zkontroluj, zda jsou vkládaná data větší než data aktuálního uzlu.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

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"))
Upravit a spustit kód