Bắt đầu ngayBắt đầu miễn phí

Chèn một node vào cây tìm kiếm nhị phân

Trong video, bạn đã học cây tìm kiếm nhị phân (BST) là gì và cách hiện thực các thao tác chính của chúng.

Trong bài tập này, bạn sẽ hiện thực một hàm để chèn một node vào BST.

Để kiểm thử mã của bạn, bạn có thể dùng cây sau:

Graphical representation of a binary search tree.

Các node chứa tiêu đề sách, tạo thành một BST theo thứ tự bảng chữ cái.

Cây này đã được nạp sẵn trong biến bst:

bst = CreateTree()

Bạn có thể kiểm tra node được chèn đúng hay chưa với đoạn mã sau:

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

Bài tập này là một phần của khóa học

Cấu trúc dữ liệu và Thuật toán với Python

Xem khóa học

Hướng dẫn bài tập

  • Kiểm tra BST có rỗng không.
  • Kiểm tra dữ liệu cần chèn có nhỏ hơn dữ liệu của node hiện tại không.
  • Kiểm tra dữ liệu cần chèn có lớn hơn dữ liệu của node hiện tại không.

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

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"))
Chỉnh sửa và Chạy Mã