НачатьНачать бесплатно

Вставка узла в двоичное дерево поиска

В видеоуроке вы познакомились с двоичными деревьями поиска (BST) и научились реализовывать их основные операции.

В этом упражнении вы реализуете функцию для вставки узла в BST.

Для проверки кода можно использовать следующее дерево:

Graphical representation of a binary search tree.

Узлы содержат названия книг, а дерево построено на основе алфавитного порядка.

Это дерево предварительно загружено в переменную bst:

bst = CreateTree()

Проверить корректность вставки узла можно с помощью следующего кода:

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

Это упражнение является частью курса

Структуры данных и алгоритмы на Python

Посмотреть курс

Инструкции к упражнению

  • Проверьте, является ли двоичное дерево поиска пустым.
  • Проверьте, меньше ли вставляемое значение данных, чем данные текущего узла.
  • Проверьте, больше ли вставляемое значение данных, чем данные текущего узла.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

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"))
Редактировать и запускать код