Cho cây tìm kiếm nhị phần (Hình 2) biểu diễn tập hợp số nguyên dương A = {46, 49, 31, 45, 41, 50, 47, 28, 30, 48}. Em hãy viết chương trình kiểm tra giá trị x = 41 có xuất hiện trong tập hợp A hay không.

THỰC HÀNH

Nhiệm vụ 1. Ứng dụng cây tìm kiếm nhị phân để giải bài toán tìm kiếm

Yêu cầu: Cho cây tìm kiếm nhị phần (Hình 2) biểu diễn tập hợp số nguyên dương

A = {46, 49, 31, 45, 41, 50, 47, 28, 30, 48}.

Em hãy viết chương trình kiểm tra giá trị x = 41 có xuất hiện trong tập hợp A hay không.


Để kiểm tra xem giá trị x = 41 có xuất hiện trong tập hợp A hay không, bạn có thể sử dụng thuật toán tìm kiếm nhị phân trên cây tìm kiếm nhị phân. Dưới đây là mã chương trình Python mẫu để thực hiện việc này:

class Node:

    def __init__(self, key):

       self.left = None

       self.right = None

        self.val = key

 

def search(root, key):

    if root is None or root.val == key:

        return root

    if root.val < key:

        return search(root.right, key)

    return search(root.left, key)

 

# Tạo cây tìm kiếm nhị phân từ tập hợp A

values = [46, 49, 31, 45, 41, 50, 47, 28, 30, 48]

root = Node(values[0])

for value in values[1:]:

    insert(root, value)

 

# Kiểm tra x = 41 có xuất hiện trong tập hợp A không

x = 41

if search(root, x):

   print(f"Giá trị {x} có xuất hiện trong tập hợp A.")

else:

   print(f"Giá trị {x} không xuất hiện trong tập hợp A.")


Bình luận

Giải bài tập những môn khác