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:

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
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"))