Giáo án chuyên đề KHMT 12 kết nối: Bài 7 Cây tìm kiếm nhị phân
Trọn bộ giáo án chuyên đề tin học khoa học máy tính 12 sách kết nối tri thức cả năm file word. Giáo án bài 7 Cây tìm kiếm nhị phân. Bài soạn bám sát theo chương trình mới được trình bày khoa học, kiến thức trọng tâm, dễ dàng giảng dạy và chỉnh sửa đơn giản khi cần.
Nội dung chi tiết
Ngày soạn:…/…/…
Ngày dạy:…/…/…
BÀI 7: CÂY TÌM KIẾM NHỊ PHÂN
(2 tiết)
I. MỤC TIÊU
1. Kiến thức
Sau bài học này, HS sẽ:
Nêu được khái niệm cây tìm kiếm nhị phân.
Trình bày các thuật toán tạo cây tìm kiếm nhị phân, chèn thêm nút vào cây tìm kiếm nhị phân.
Trình bày thuật toán tìm kiếm khoá trên cây tìm kiếm nhị phân.
2. Năng lực
Năng lực chung:
Năng lực giao tiếp và hợp tác: Biết lựa chọn hình thức làm việc nhóm với quy mô phù hợp với yêu cầu và thực hiện tốt nhiệm vụ.
Năng lực tự chủ và tự học: Chủ động học tập, tìm hiểu nội dung bài học, biết lắng nghe và trả lời nội dung trong bài học.
Giải quyết vấn đề và sáng tạo: Trả lời được các câu hỏi, giải quyết được các vấn đề với sự hỗ trợ của công nghệ thông tin và truyền thông.
Năng lực Tin học:
Trình bày được khái niệm cây tìm kiếm nhị phân.
Mô phỏng được thuật toán tạo cây tìm kiếm nhị phân từ một tập hợp các số cho trước.
Biết và thực hiện được thuật toán tìm kiếm một giá trị của cây tìm kiếm nhị phân.
3. Phẩm chất
Chăm chỉ: Tích cực tìm tòi và sáng tạo trong học tập.
Trung thực: Thực hiện đúng phần việc của bản thân và hợp tác làm việc nhóm khi được giao nhiệm vụ. Có ý thức báo cáo kết quả một cách chính xác.
Trách nhiệm: Hoàn thành các bài tập theo yêu cầu của GV thông qua hệ thống câu hỏi, phiếu học tập, thông qua sản phẩm.
II. THIẾT BỊ DẠY HỌC VÀ HỌC LIỆU:
1. Đối với giáo viên:
Tài liệu, máy tính, máy trình chiếu.
SGK, SGV Chuyên đề học tập Tin học 12 – Định hướng Khoa học máy tính – Kết nối tri thức với cuộc sống.
2. Đối với học sinh:
Vở ghi, máy tính.
SGK Chuyên đề học tập Tin học 12 – Định hướng Khoa học máy tính – Kết nối tri thức với cuộc sống.
III. TIẾN TRÌNH DẠY HỌC
A. HOẠT ĐỘNG KHỞI ĐỘNG
a. Mục tiêu: HS nhận biết được một dạng đặc biệt của cây nhị phân: Cây tìm kiếm nhị phân (BST- Binary Search Tree).
b. Nội dung: HS quan sát các hình ảnh, suy nghĩ, thảo luận và trả lời câu hỏi.
c. Sản phẩm học tập: Câu trả lời của HS.
d. Tổ chức thực hiện:
Bước 1: GV chuyển giao nhiệm vụ học tập
- GV cho HS thảo luận theo nhóm đôi.
- GV yêu cầu HS quan sát và trả lời câu hỏi Khởi động SGK trang 30:
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?

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.
Bước 2: HS thực hiện nhiệm vụ học tập
- HS tiếp nhận, thực hiện nhiệm vụ.
- GV hướng dẫn, hỗ trợ HS (nếu cần thiết).
Bước 3: Báo cáo kết quả hoạt động và thảo luận
- HS trình bày câu trả lời, các HS khác chú ý lắng nghe và nhận xét.
Bước 4: Đánh giá kết quả, thực hiện nhiệm vụ học tập
GV đánh giá kết quả của HS, dẫn dắt HS vào bài học mới: Bài học hôm nay, chúng ta cùng đi tìm hiểu về cây tìm kiếm nhị phân, thuật toán tạo cây tìm kiếm nhị phân và thuật toán tìm kiếm một giá trị của cây tìm kiếm nhị phân - Bài 7: Cây tìm kiếm nhị phân.
B. HOẠT ĐỘNG HÌNH THÀNH KIẾN THỨC
Hoạt động 1. Tìm hiểu cấu trúc cây tìm kiếm nhị phân
a. Mục tiêu: HS biết được định nghĩa chính xác của cây tìm kiếm nhị phân và biết được một số cách biểu diễn cây tìm kiếm nhị phân trên máy tính.
b. Nội dung: GV giao nhiệm vụ; HS tìm hiểu nội dung mục 1, kết hợp với những hiểu biết về thực tiễn, thảo luận nhóm thực hiện nhiệm vụ.
c. Sản phẩm: Hình thành được kiến thức bài học. HS nhận biết cây tìm kiếm nhị phân.
d. Tổ chức thực hiện:
HOẠT ĐỘNG CỦA GV - HS | DỰ KIẾN SẢN PHẨM |
Bước 1: GV chuyển giao nhiệm vụ học tập - GV yêu cầu HS thảo luận, tìm hiểu nội dung mục 1 và trả lời một số câu hỏi: + Nêu khái niệm cây tìm kiếm nhị phân. + Có thể biểu diễn dữ liệu cây nhị phân theo những cách nào? Trình bày cách biểu diễn.
+ Thế nào là cây tìm kiếm nhị phân?
- GV giới thiệu về cây cân bằng, cây suy biến.
- GV yêu cầu HS vận dụng kiến thức vừa tìm hiểu, trả lời câu hỏi Củng cố tr.32 SGK: Câu 1. Trong Hình 7.5, em hãy cho biết cây nào là cây tìm kiếm nhị phân. ![]() Câu 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.
Bước 2: HS thực hiện nhiệm vụ học tập - HS tìm hiểu nội dung SGK sau đó trao đổi, thảo luận trả lời các câu hỏi mà GV đưa ra. - GV quan sát, hướng dẫn, hỗ trợ HS (nếu cần thiết). Bước 3: Báo cáo kết quả hoạt động và thảo luận - GV mời đại diện các nhóm báo cáo kết quả thảo luận. - GV mời HS khác nhận xét, bổ sung. Bước 4: Đánh giá kết quả, thực hiện nhiệm vụ học tập - Từ kết quả thảo luận của nhóm, GV nhận xét, đánh giá quá trình HS thực hiện nhiệm vụ. - GV chính xác hoá lại các nội dung kiến thức. - GV kết luận: Cây nhị phân tổng quát có thể được cài đặt bằng cấu trúc nút liên kết hoặc bằng mảng một chiều. Cây tìm kiếm nhị phân là cây nhị phân mà tại mọi nút, khoá của nút này lớn hơn khoá của các nút con thuộc cây con trái và nhỏ hơn khoá của các nút con thuộc cây con phải. Khoá của các nút là duy nhất, nghĩa là hai nút khác nhau có khoá khác nhau. | 1. Cây tìm kiếm nhị phân Cây tìm kiếm nhị phân (BST – Binary Search Tree) là một dạng đặc biệt của cây nhị phân thông thường, được tạo ra với mục đích hỗ trợ thuận tiện cho các bài toán tìm kiếm, chèn, xoá, sắp xếp. a) Mô hình dữ liệu cây nhị phân Có hai cách biểu diễn cây nhị phân tổng quát: - Cách 1: Sử dụng cấu trúc nút liên kết. Cách biểu diễn này sẽ cần hai cấu trúc: + Cấu trúc Node để thể hiện thông tin từng nút (node) của cây nhị phân. + Cấu trúc Tree chỉ có thuộc tính root sẽ chỉ vào nút gốc của cây nhị phân. ![]() - Cách 2: Sử dụng mảng một chiều. Với cách này, cây nhị phân tổng quát cần được bổ sung thêm các nút giả (có giá trị None) để tạo thành cây nhị phân hoàn chỉnh đã biến đổi, sau đó sử dụng cách biểu diễn cây hoàn chỉnh này để biểu diễn. + Ví dụ: Cho mảng T = [5, 3, 7, 6]. Cây nhị phân tổng quát ở Hình 7.3c được thêm vào các nút giả None để trở thành cây nhị phân hoàn chỉnh và được cài đặt bằng mảng T = [5, 3, 7, None, None, 6]. ![]() - Để thiết lập nhị phân rỗng, sử dụng hàm: ![]() b) Cây tìm kiếm nhị phân - Cây tìm kiếm nhị phân là cây nhị phân, có hai tính chất quan trọng:
- Cây tìm kiếm nhị phân: + Cây cân bằng: cây tìm kiếm nhị phân mà tại mọi nút thì chiều cao của cây con trái và của cây con phải lệch nhau nhiều nhất là 1. (Hình 7.4a).
+ Cây suy biến: cây tìm kiếm nhị phân có chiều cao lớn nhất, mỗi nút chỉ có tối đa một nút con. (Hình 7.4b)
![]() - Khi cây tìm kiếm nhị phân được cài đặt bằng mảng T, tại mọi nút k, với mọi nút i thuộc cây con trái và với mọi nút j thuộc cây con phải, ta có bất đẳng thức: T[i] < T[k] < T[j] Lưu ý: Nếu cây nhị phân T là cây tìm kiếm nhị phân thì mọi cây con của T cũng là cây tìm kiếm nhị phân.
Hướng dẫn trả lời câu hỏi Củng cố tr.32 SGK: Câu 1. Trường hợp b) Câu 2. Có 5 cách thiết lập cây tìm kiếm nhị phân từ các khóa 1, 2, 3. ![]() |
Hoạt động 2. Thuật toán chèn khóa mới vào cây tìm kiếm nhị phân
a. Mục tiêu: HS hiểu được thuật toán chèn một nút có khoá mới vào một cây tìm kiếm nhị phân T cho trước, sao cho sau khi chèn cây T vẫn là cây tìm kiếm nhị phân.
b. Nội dung: GV giao nhiệm vụ; HS tìm hiểu nội dung mục 2, kết hợp với những hiểu biết về thực tiễn, thảo luận nhóm thực hiện nhiệm vụ.
c. Sản phẩm: Hình thành kiến thức bài học. HS biểu diễn cây nhị phân bằng mảng một chiều.
d. Tổ chức thực hiện:
HOẠT ĐỘNG CỦA GV - HS | DỰ KIẾN SẢN PHẨM |
Bước 1: GV chuyển giao nhiệm vụ học tập - GV nêu Bài toán: Bài toán: Cho cây tìm kiếm nhị phân T. Yêu cầu chèn khoá v vào cây T sao cho sau khi chèn khoá v thì cây T vẫn là cây tìm kiếm nhị phân. Quan sát, thảo luận, tìm hiểu thuật toán tìm kiếm khoá 7 trên cây tìm kiếm nhị phân và cách chèn khoá 7 vào cây này. - GV hướng dẫn HS thực hiện, sau đó gọi nhóm HS lên trình bày lại (có thể sử dụng nút khóa khác nhau).
- GV yêu cầu: Nêu các bước chính để chèn một khóa v vào cây tìm kiếm nhị phân T.
- HS tìm hiểu SGK, GV giới thiệu đoạn chương trình mô tả thao tác chèn một khóa vào cây tìm kiếm nhị phân. + Bước 1 thực hiện tim vị trí cần chèn khoá v bắt đầu từ nút gốc T[0] cho đến khi gặp nút giả T[k] = None hoặc tìm thấy nút T[k] = v thì kết thúc. + Bước 2 thực hiện chèn khoá v vào cây T tại nút k. Nếu k
- GV yêu cầu HS vận dụng kiến thức vừa tìm hiểu, trả lời câu hỏi Củng cố tr.34 SGK: Câu 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 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.
Bước 2: HS thực hiện nhiệm vụ học tập - HS tìm hiểu nội dung SGK sau đó trao đổi, thảo luận trả lời các câu hỏi mà GV đưa ra. - GV quan sát, hướng dẫn, hỗ trợ HS (nếu cần thiết). Bước 3: Báo cáo kết quả hoạt động và thảo luận - GV mời đại diện các nhóm báo cáo kết quả thảo luận. - GV mời HS khác nhận xét, bổ sung. Bước 4: Đánh giá kết quả, thực hiện nhiệm vụ học tập - Từ kết quả thảo luận của nhóm, GV nhận xét, đánh giá quá trình HS thực hiện nhiệm vụ. - GV chính xác hoá lại các nội dung kiến thức. - GV kết luận: + Quá trình chèn một khoá v vào cây tìm kiếm nhị phân T gồm hai bước: Bước 1. Tìm vị trí chính xác cần chèn. Nếu gặp khoá v thì dùng chương trình. Bước 2. Thực hiện thao tác chèn. | 2. Thuật toán chèn khóa mới vào cây tìm kiếm nhị phân
Hướng dẫn thực hiện - Thiết lập cấu trúc nút mới với khoá 7 sẵn sàng chèn vào cây tìm kiếm nhị phân T.
- Bước 1: Tìm vị trí cần chèn khoá v trên cây T (Hình 7.6b). + Bắt đầu từ nút gốc. + Vì nút gốc có khoá 5 < 7, nên sẽ chuyển tìm tiếp sang nút con phải của nút gốc (với khoá 10). + Nút hiện thời có khoá 10 > 7 nên sẽ chuyển tìm tiếp sang nút con trái của nút hiện thời (với khoá 8). + Nút hiện thời là 8 > 7 nên sẽ chuyển tìm tiếp sang nút con trái của nút hiện thời. Nhưng nút con trái này là None, do vậy đây chính là vị trí cần chèn nút mới.
- Bước 2: Chèn khoá v vào cây T (Hình 7.6c). + Chèn nút mới với khoá 7 vào vị trí là nút con trái của nút với khoá 8. + Trong trường hợp khoá v không có trong cây T thì chèn khoá v vào cây này bằng cách tạo nút thật mới tại nút giả None và gán khoá v cho nút mới này.
Kết luận: Quá trình chèn một khoá v vào cây tìm kiếm nhị phân T gồm hai bước: Bước 1. Tìm vị trí chính xác cần chèn. Nếu gặp khoá v thì dứng chương trình. Bước 2. Thực hiện thao tác chèn.
*) Đoạn chương trình: Hàm Tree_Insert(T, v) dùng để chèn khoá v vào cây tìm kiếm nhị phân T được cài đặt bằng một danh sách (thuộc kiểu list của Python). ![]() Đoạn chương trình sau thực hiện việc tạo cây tìm kiếm nhị phân từ một tập hợp các phần tử cho trước.
Hướng dẫn trả lời câu hỏi Củng cố Câu 1: Kết quả cây tìm kiếm nhị phân
Câu 2: Sơ đồ cây sau khi chèn khóa 14:
Chèn khoá 14 vào vị trí là nút con trái của nút với khoá 15. |
Hoạt động 3: Tìm hiểu thuật toán tìm kiếm trên cây tìm kiếm nhị phân
a. Mục tiêu: HS hiểu được thuật toán tìm kiếm khoá trên cây tìm kiếm nhị phân, hiểu được tính ưu việt của việc tìm kiếm trên cây tìm kiếm nhị phân.
b. Nội dung: GV giao nhiệm vụ; HS tìm hiểu nội dung mục 3, kết hợp với những hiểu biết về thực tiễn, thảo luận nhóm thực hiện nhiệm vụ.
c. Sản phẩm: Hình thành kiến thức bài học. HS hiểu được thuật toán tìm kiếm khoá trên cây tìm kiếm nhị phân.
d. Tổ chức thực hiện:
HOẠT ĐỘNG CỦA GV - HS | DỰ KIẾN SẢN PHẨM |
Bước 1: GV chuyển giao nhiệm vụ học tập - GV yêu cầu HS quan sát quá trình tìm kiếm khoá trên cây tìm kiếm nhị phân thông qua các ví dụ cụ thể trong Hoạt động 3: a) Tìm kiếm khoá 18. Trình tự tìm kiếm: 11 20 15 16 None (không tìm thấy). ![]() b) Tìm kiếm khoá 7. Trình tự tìm kiếm: 11 4 7 (tìm thấy) ![]() - HS hoạt động nhóm: đề xuất thuật toán, chương trình để tìm kiếm khóa trên cây tìm kiếm nhị phân. …………………….
| 3. Thuật toán tìm kiếm trên cây tìm kiếm nhị phân
*) Thuật toán: tìm kiếm một nút với khóa v - Bắt đầu từ nút có chỉ số k trên cây tìm kiếm nhị phân T. Nếu tìm thấy thì hàm trả về chỉ số của nút có giá trị v, ngược lại trả về -1. - Việc tìm kiếm được thực hiện như sau: + Nếu k nằm ngoài khoảng chỉ số của T hoặc T[k] = None thì trả về -1. + Nếu T[k] = v thì dừng tìm kiếm và trả về k. + Nếu T[k] *) Chương trình tìm kiếm một nút với khóa v - Cách 1: Sử dụng kĩ thuật đệ quy Hàm tìm kiếm sử dụng đệ quy: ![]() - Cách 2: Không sử dụng kĩ thuật đệ quy. Hàm tìm kiếm không sử dụng đệ quy: ………………………….. |
----------------------------------
------------------ Còn tiếp ---------------------
Tài liệu cùng môn học
- Trắc nghiệm khoa học máy tính 12 kết nối tri thức
- Giáo án word tin học khoa học máy tính 12 kết nối tri thức
- Giáo án ppt tin học khoa học máy tính 12 kết nối tri thức
- Giáo án chuyên đề tin học khoa học máy tính 12 kết nối tri thức
- Giáo án ppt chuyên đề tin học khoa học máy tính 12 kết nối tri thức
- Giải tin học khoa học máy tính 12 kết nối tri thức
- Giải chuyên đề khoa học máy tính 12 kết nối tri thức
- Lý thuyết khoa học máy tính 12 kết nối tri thức
- Bài tập củng cố Khoa học máy tính 12 kết nối tri thức
- Trắc nghiệm đúng sai khoa học máy tính 12 kết nối tri thức
- Trắc nghiệm trả lời ngắn khoa học máy tính 12 kết nối tri thức
- Đề thi tin học khoa học máy tính 12 kết nối tri thức
- Ppt trò chơi AI Tin học 12 Khoa học máy tính Kết nối tri thức
- Video AI mở đầu Tin học 12 Khoa học máy tính kết nối tri thức
Tài liệu khác
- Trắc nghiệm văn 12 kết nối tri thức
- Trắc nghiệm địa lí 12 kết nối tri thức
- Trắc nghiệm hóa học 12 kết nối tri thức
- Trắc nghiệm KTPL 12 kết nối tri thức
- Trắc nghiệm lịch sử 12 kết nối tri thức
- Trắc nghiệm sinh học 12 kết nối tri thức
- Trắc nghiệm toán 12 kết nối tri thức
- Trắc nghiệm quốc phòng 12 kết nối tri thức
- => Xem nhiều môn hơn
















