Câu hỏi:

01/10/2024 208

Cho cây tìm kiếm nhị phân như Hình 9. Em hãy thực hiện:

Media VietJack

a) Mô tả các bước để tìm giá trị x = 22 có trong cây theo các thuật toán: duyệt trước, duyệt giữa, duyệt sau và tìm kiếm trên cây tìm kiếm nhị phân.

b) Với các thuật toán ở câu a), trong trường hợp tổng quát của cây tìm kiếm nhị phần, thuật toán nào có số lần so sánh khóa cần tìm với khóa của các nút là ít nhất.

c) Viết chương trình tạo cây tìm kiếm nhị phân ở Hình 9. Sau đó, in ra màn hình các khóa có trong cây này theo thứ tự tăng dần.

Sách mới 2k7: Tổng ôn Toán, Lí, Hóa, Văn, Sử, Địa…. kỳ thi tốt nghiệp THPT Quốc gia 2025, đánh giá năng lực (chỉ từ 110k).

Tổng ôn toán Tổng ôn sử Các môn khác

Quảng cáo

Trả lời:

verified
Giải bởi Vietjack

a) Để tìm giá trị x = 22 trong cây tìm kiếm nhị phân, bạn có thể thực hiện theo các bước sau:

- Duyệt trước: Bắt đầu từ nút gốc (25), duyệt qua nút gốc, sau đó là cây con bên trái (bắt đầu từ 15), và cuối cùng là cây con bên phải (bắt đầu từ 50). Tiếp tục cho đến khi tìm thấy x = 22 hoặc đã duyệt qua tất cả các nút.

- Duyệt giữa: Duyệt cây con bên trái (bắt đầu từ 15), sau đó là nút gốc (25), và cuối cùng là cây con bên phải (bắt đầu từ 50). Phương pháp này sẽ tìm thấy x = 22 sau khi kiểm tra tất cả các giá trị nhỏ hơn.

- Duyệt sau: Duyệt cây con bên trái (bắt đầu từ 15), sau đó là cây con bên phải (bắt đầu từ 50), và cuối cùng là nút gốc (25). Phương pháp này sẽ tìm thấy x = 22 sau khi khám phá tất cả các nút con.

- Tìm kiếm nhị phân: Bắt đầu từ nút gốc (25). Vì x = 22 nhỏ hơn 25, chuyển sang nút con bên trái (15). Vì x = 22 lớn hơn 15, chuyển sang nút con bên phải (20). Vì không có nút con bên phải cho nút có giá trị ‘20’, kết luận rằng x = 22 không tồn tại trong cây tìm kiếm nhị phân này.

b) Trong trường hợp tổng quát của cây tìm kiếm nhị phân, thuật toán tìm kiếm nhị phân thường có số lần so sánh ít nhất vì nó hệ thống hóa việc thu hẹp vị trí có thể có bằng cách so sánh ở mỗi cấp độ.

c) Chương trình tạo cây tìm kiếm nhị phân ở Hình 9. Sau đó, in ra màn hình các khóa có trong cây này theo thứ tự tăng dần.ưới đây là mã chương trình để tạo cây tìm kiếm nhị phân như trong Hình 9 và in ra các khóa theo thứ tự tăng dần:

class Node:

    def __init__(self, key):

       self.left = None

       self.right = None

        self.val = key

def insert(root, key):

    if root is None:

        return Node(key)

    else:

        if root.val < key:

           root.right = insert(root.right, key)

        else:

           root.left = insert(root.left, key)

    return root

def inorder_traversal(root):

    if root:

       inorder_traversal(root.left)

       print(root.val, end=' ')

       inorder_traversal(root.right)

# Tạo cây tìm kiếm nhị phân từ các giá trị trong Hình 9

values = [25, 15, 50, 10, 20, 35, 70, 12, 18, 24, 31, 44, 66, 90]

root = Node(values[0])

for value in values[1:]:

    insert(root, value)

# In các khóa theo thứ tự tăng dần

inorder_traversal(root)

 


CÂU HỎI HOT CÙNG CHỦ ĐỀ

Câu 1:

Em hãy vẽ cây tìm kiếm nhị phân bằng cách đưa vào cây rỗng lần lượt các phần tử của mảng A = [3, 6, 13, 7, 5, 2, 8, 9].

Xem đáp án » 01/10/2024 164

Câu 2:

Cho mảng A = [5, 7, 30, 23, 34, 15]. Hãy vẽ cây tìm kiếm nhị phân biểu diễn mảng A.

Xem đáp án » 01/10/2024 66

Câu 3:

Cho tập hợp A gồm các số nguyên dương A = (6, 14, 10, 34, 40, 30, 46, 20, 24, 22} được lưu trữ bằng hai cách sau:

Media VietJack

Cách 1: Lưu vào mảng một chiều.

Media VietJack

Cho giá trị x = 20. Em hãy trình bày:

a) Cách tìm kiếm x trong mảng A.

b) Cách tìm kiếm x trong cây nhị phân.

Xem đáp án » 01/10/2024 62

Câu 4:

Trình bày thuật toán xác định giá trị * = 34 có thuộc cây tìm kiếm nhị phân được biểu diễn ở Hình 4b hay không.

Xem đáp án » 01/10/2024 53

Câu 5:

Hình nào trong Hình 3 biểu diễn cây tìm kiếm nhị phân?

Media VietJack

 

Xem đáp án » 01/10/2024 47

Bình luận


Bình luận
Đăng ký gói thi VIP

VIP +3 - Luyện thi tất cả các đề có trên Website trong 3 tháng

  • Được thi tất cả các đề của các lớp có trên Khoahoc.vietjack.com
  • Ngân hàng câu hỏi trắc nghiệm theo các mức độ Nhận biết, Thông hiểu, Vận dụng, Vận dụng cao.
  • Luyện chuyên sâu, rèn tốc độ với trọn bộ đề thi thử, đề minh họa, chính thức các năm.
  • Hỏi bài tập với đội ngũ chuyên môn cao của chúng tôi.

Đặt mua

VIP +6 - Luyện thi tất cả các đề có trên Website trong 6 tháng

  • Được thi tất cả các đề của các lớp có trên Khoahoc.vietjack.com
  • Ngân hàng câu hỏi trắc nghiệm theo các mức độ Nhận biết, Thông hiểu, Vận dụng, Vận dụng cao.
  • Luyện chuyên sâu, rèn tốc độ với trọn bộ đề thi thử, đề minh họa, chính thức các năm.
  • Hỏi bài tập với đội ngũ chuyên môn cao của chúng tôi.

Đặt mua

VIP +12 - Luyện thi tất cả các đề có trên Website trong 12 tháng

  • Siêu tiết kiệm - Được thi tất cả các đề của các lớp có trên Khoahoc.vietjack.com
  • Ngân hàng câu hỏi trắc nghiệm theo các mức độ Nhận biết, Thông hiểu, Vận dụng, Vận dụng cao.
  • Luyện chuyên sâu, rèn tốc độ với trọn bộ đề thi thử, đề minh họa, chính thức các năm.
  • Hỏi bài tập với đội ngũ chuyên môn cao của chúng tôi.

Đặt mua

Vietjack official store