Giải chuyên đề Khoa học máy tính 12 Kết nối bài 7: Cây tìm kiếm nhị phân

Hướng dẫn giải bài 7: Cây tìm kiếm nhị phân bộ sách mới chuyên đề học tập Khoa học máy tính 12 Kết nối tri thức. Bộ sách được biên soạn theo định hướng đổi mới giáo dục phổ thông nhằm phát triển toàn diện phẩm chất, năng lực của học sinh. Hi vọng, với cách hướng dẫn cụ thể và giải chi tiết dưới đây các em sẽ nắm bài học tốt hơn.

B. Bài tập và hướng dẫn giải

Khởi động

Quan sát các cây nhị phân sau, em có nhận xét gì về giá trị của các nút trên cây?
A screenshot of a diagram

Description automatically generated

Gợi ý: 

- Tại mỗi nút, so sánh dữ liệu của các nút của cây con trái và của cây con phải với nút này. 

- Tại mỗi nút, so sánh dữ liệu của nút con trái và của nút con phải với nút này.

1. CÂY TÌM KIẾM NHỊ PHÂN

Câu hỏi 1: Trong hình 7.1, em hãy cho biết cây nào là cây tìm kiếm nhị phân.

A diagram of a triangle with blue circles and white text

Description automatically generated

Câu hỏi 2: Từ các khóa 1, 2, 3 có thể tạo ra được bao nhiêu cây tìm kiếm nhị phân? Hãy vẽ sơ đồ mô tả các cây này.

2. CHÈN MỘT KHÓA VÀO CÂY TÌM KIẾM NHỊ PHÂN

Câu hỏi 1: Cho trước dãy các số A = [10, 1, 2, 11, 8, 15, 20, 9, 0]. 

Hãy mô tả và vẽ sơ đồ cây nhị phân biểu diễn dãy số trên sau khi thực hiện thao tác chèn như đã mô tả trong hoạt động. 

Câu hỏi 2: Với cây nhị phân đã có ở Câu 1, em hãy vẽ sơ đồ cây sau khi chèn khoá 14 và cho biết vị trí của khoá này ở trong cây.

3. THUẬT TOÁN TÌM KIẾM TRÊN CÂY TÌM KIẾM NHỊ PHÂN

Câu hỏi 1: Khi nào việc tìm kiếm trên cây tìm kiếm nhị phân là:

a) nhanh nhất?                            b) chậm nhất?

Câu hỏi 2: Cây tìm kiếm nhị phân T được thiết lập bằng cách chèn lần lượt các phần tử 3, 1, 6, 5, 0, 2, 4. Dùng sơ đồ mô tả các bước tìm kiếm giá trị khóa là:

a) 4                                   b) 10                                 c) 0

Luyện tập

1. Thay đổi thứ tự chèn các phần tử vào cây nhị phân có tạo ra các cây tìm kiếm nhị phân khác nhau hay không? Cho ví dụ minh họa.

2. Nếu dãy số được đưa vào cây tìm kiếm nhị phân là tăng dần (hoặc giảm dần) thì cây tìm kiếm nhị phân tương ứng có dạng như thế nào?

Vận dụng

1. Dữ liệu đầu vào là danh sách học sinh trong lớp và điểm trung bình các môn. Danh sách được cho trong tệp văn bản có dạng như bảng bên.

A close-up of a text

Description automatically generated

Viết chương trình đọc tập dữ liệu đầu vào trên và liên tục thực hiện các thao tác sau:

a) Nhập thêm vào danh sách học sinh và điểm trung bình.

b) Tìm kiếm với yêu cầu nhập họ tên học sinh và đưa ra kết quả họ tên học sinh, điểm trung bình hoặc thông báo "không tìm thấy".

Chương trình kết thúc khi nhập vào một xâu rỗng. Yêu cầu giải bài này bằng cây tìm kiếm nhị phân.

2. Viết hàm chèn khoá v vào cây tìm kiếm nhị phân T sử dụng kĩ thuật đệ quy.

3. Cho trước dãy A bao gồm các số nguyên và các giá trị None. Viết chương trình kiểm tra xem A có phải là biểu diễn của một cây nhị phân hoàn chỉnh đã biến đổi hay không?

Ví dụ:

Dãy [10, 7, 0, 5, None, 3] là biểu diễn của cây nhị phân hoàn chỉnh đã biến đổi. Dãy [1, 6, None, 2, 3, None, 4] không là biểu diễn của cây nhị phân tổng quát nào. 

4. Cho trước dãy A bao gồm các số nguyên và các giá trị None. Viết chương trình kiểm tra xem A có phải là biểu diễn của một cây tìm kiếm nhị phân hay không.

Ví dụ:

Dãy [5, 3, 6, None, 4, None, 10] là biểu diễn của cây tim kiếm nhị phân.

Dãy [2, 1, 5, None, 3, 4, 10] không là biểu diễn của cây tìm kiếm nhị phân (mặc dù dãy này là biểu diễn của cây nhị phân hoàn chỉnh đã biến đổi).

Từ khóa tìm kiếm:

Giải chuyên đề học tập Khoa học máy tính 12 Kết nối tri thức, Giải chi tiết bài 7: Cây tìm kiếm nhị phân chuyên đề học tập Khoa học máy tính 12 Kết nối tri thức, Giải chuyên đề học tập Khoa học máy tính 12 Kết nối tri thức bài 7: Cây tìm kiếm nhị phân

Bình luận

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