Bài giảng Cấu trúc dữ liệu và giải thuật – Bài 19: Cây nhị phân

24 49 0
Bài giảng Cấu trúc dữ liệu và giải thuật – Bài 19: Cây nhị phân

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Bài giảng Cấu trúc dữ liệu và giải thuật – Bài 19: Cây nhị phân trình bày những kiến thức về khái niệm về cây nhị phân, biểu diễn cây nhị phân, duyệt cây nhị phân.

Cấu trúc liệu giải thuật Bài 19 Cây nhị phân Giảng viên: TS Ngo Huu Phuc Tel: 0438 326 077 Mob: 098 5696 580 Email: ngohuuphuc76@gmail.com @copyright by PhD Ngo Huu Phuc, Le Quy Don Technical University Bài 19: Cây nhị phân Nội dung: 19.1 Khái niệm nhị phân 19.2 Biểu diễn nhị phân 19.4 Duyệt nhị phân Tham khảo: Deshpande Kakde: C and Data structures.chm, Chapter 21: Trees Elliz Horowitz – Fundamentals of Data Structures.chm, Chapter 5: Trees Kyle Loudon: Mastering Algorithms with C.chm, Chapter Trees Bài giảng TS Nguyễn Nam Hồng @copyright by PhD Ngo Huu Phuc, Le Quy Don Technical University 19.1 Khái niệm nhị phân (1/7) 19.1.1 Giới thiệu định nghĩa:  Cây nhị phân trường hợp đặc biệt cây, khơng có node có bậc lớn  Do nhị phân T định nghĩa:  Có node đặc biệt gọi root  Các node khác chia thành tập T1 T2, chúng nhị phân  Cây T1 gọi bên trái  Cây T2 gọi bên phải @copyright by PhD Ngo Huu Phuc, Le Quy Don Technical University 19.1 Khái niệm nhị phân (2/7) Từ định nghĩa nhị phân ta nhận thấy rằng:  Số node tối đa nhị phân mức i 2i−1  Nếu k độ sâu số D phần tử tối đa là: 2k − = 2k−1 + 2k−2 + … + 20 A B C E H F I Ví dụ nhị phân @copyright by PhD Ngo Huu Phuc, Le Quy Don Technical University G 19.1 Khái niệm nhị phân (3/7) Cây lệch: Trong thực tế, có dạng đặc biệt: lệch Cây lệch có trái phải A A B C C Cây lệch trái B @copyright by PhD Ngo Huu Phuc, Le Quy Don Technical University Cây lệch phải 19.1 Khái niệm nhị phân (4/7) Cây nhị phân đầy đủ (Full binary tree):  Cây nhị phân đầy đủ có độ cao k node mức thấp có đủ trái phải  Như vậy, với nhị phân đầy đủ có độ cao k số node 2k-1 Ví dụ: Với k=3, số node nhị phân đầy đủ 23-1=7 A B C E D F Ví dụ nhị phân đầy đủ có độ cao @copyright by PhD Ngo Huu Phuc, Le Quy Don Technical University G 19.1 Khái niệm nhị phân (5/7) Cây nhị phân hoàn chỉnh (Complete binary tree):  Cây nhị phân hồn chỉnh có độ cao k, với độ cao k-1 đầy đủ  Tại độ cao k, node đưa vào từ trái sang phải  Nhận xét:  Các node mức k-2 trước có đủ  Các node mức k-1 có Nếu có trì có trái (các node mức trước có con) A B C A E D B C Ví dụ nhị phân hoàn chỉnh @copyright by PhD Ngo Huu Phuc, Le Quy Don Technical University E D F 19.1 Khái niệm nhị phân (6/7) So sánh nhị phân đầy đủ hoàn chỉnh:  Cây nhị phân đầy đủ trường hợp riêng nhị phân hoàn chỉnh  Cây nhị phân hoàn chỉnh chưa nhị phân đầy đủ A A B C E D F Cây nhị phân đầy đủ B G C E D F Cây nhị phân hoàn chỉnh @copyright by PhD Ngo Huu Phuc, Le Quy Don Technical University 19.1 Khái niệm nhị phân (7/7) Cây nhị phân cân (Balanced binary tree):  Cây nhị phân cân mà node độ cao trái phải không lệch A B C A E D B C Ví dụ nhị phân cân @copyright by PhD Ngo Huu Phuc, Le Quy Don Technical University E D F 19.2 Biểu diễn nhị phân (1/6)  Với nhị phân hoàn chỉnh biểu diễn mảng có n phần tử  Nếu nhị phân hoàn chỉnh biểu diễn dạng mảng, giá trị phần tử thứ i chứa mảng vị trí thứ i (1right); B D C E F } } 18 H I Thứ tự duyệt: A B D E H I C F G @copyright by PhD Ngo Huu Phuc, Le Quy Don Technical University G 19.3 Duyệt nhị phân (4/9) Duyệt trung thứ tự (Inorder): LNR Thăm bên trái node xét trước Thăm node xét Thăm bên phải node xét 19 @copyright by PhD Ngo Huu Phuc, Le Quy Don Technical University 19.3 Duyệt nhị phân (5/9) Duyệt trung thứ tự (Inorder): LNR void LNR(Tree root) A { if (root != NULL) { LNR(root->left); xử lý root; B D C E F LNR(root->right); } H I } 20 Thứ tự duyệt: D B H E I A F C G @copyright by PhD Ngo Huu Phuc, Le Quy Don Technical University G 19.3 Duyệt nhị phân (6/9) Duyệt hậu thứ tự (Postorder): LRN Thăm bên trái node xét trước Thăm bên phải node xét trước Thăm node xét 21 @copyright by PhD Ngo Huu Phuc, Le Quy Don Technical University 19.3 Duyệt nhị phân (7/9) Duyệt hậu thứ tự (Postorder): LRN void LRN(Tree root) A { if (root != NULL) { LRN (root->left); LRN (root->right); B D C E F xử lý root; } H I } 22 Thứ tự duyệt: D H I E B F G C A @copyright by PhD Ngo Huu Phuc, Le Quy Don Technical University G 19.3 Duyệt nhị phân (8/9)  Thăm node mức thấp mức cao  Tại mức, thăm từ trái trước, sau thăm phải  Sử dụng queue hỗ trợ trình duyệt  Phương pháp gọi Level-Order Traversal 23 @copyright by PhD Ngo Huu Phuc, Le Quy Don Technical University 19.3 Duyệt nhị phân (9/9) A B D H C E F G I Thứ tự duyệt: A B C D G H I E F 24 @copyright by PhD Ngo Huu Phuc, Le Quy Don Technical University ... Cây nhị phân đầy đủ trường hợp riêng nhị phân hoàn chỉnh  Cây nhị phân hoàn chỉnh chưa nhị phân đầy đủ A A B C E D F Cây nhị phân đầy đủ B G C E D F Cây nhị phân hoàn chỉnh @copyright by PhD Ngo.. .Bài 19: Cây nhị phân Nội dung: 19.1 Khái niệm nhị phân 19.2 Biểu diễn nhị phân 19.4 Duyệt nhị phân Tham khảo: Deshpande Kakde: C and Data structures.chm, Chapter 21: Trees Elliz Horowitz –. .. Cây lệch phải 19.1 Khái niệm nhị phân (4/7) Cây nhị phân đầy đủ (Full binary tree):  Cây nhị phân đầy đủ có độ cao k node mức thấp có đủ trái phải  Như vậy, với nhị phân đầy đủ có độ cao k số

Ngày đăng: 24/09/2020, 04:29

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan