Bài giảng cấu trúc dữ liệu và giải thuật – bài 17 cấu trúc dữ liệu dạng cây

21 3 0
Bài giảng cấu trúc dữ liệu và giải thuật – bài 17 cấu trúc dữ liệu dạng cây

Đ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

Cấu trúc liệu giải thuật Bài 17 Cấu trúc liệu dạng 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 Lecture 17 Trees (1/2) Nội dung học: 17.1 Khái niệm 17.2 Các phương pháp duyệt 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 17.1 Khái niệm (1/) 17.1.1 Giới thiệu  Trees dùng cho cấu trúc liệu dạng phân cấp  Ví dụ:  Việc phân cấp cấu trúc liệu dùng cho minh họa lược đồ công việc  Tổ chức đơn vị  Cây biểu thức Khoa Công nghệ thông tin BM KHMT BM HTTT BM ANM Phòng TN Giáo viên Giáo viên BM CNPM Ví dụ cây: Tổ chức Khoa CNTT @copyright by PhD Ngo Huu Phuc, Le Quy Don Technical University BM Toán TTMT 17.1 Khái niệm (2/) 17.1.2 Định nghĩa tree Cây định nghĩa đệ quy sau: Một định nghĩa tập node T có dạng:  Có node đặc biệt gọi root  Các node lại phân chia rời thành n tập dạng T1, T2,…,Tn, Ti @copyright by PhD Ngo Huu Phuc, Le Quy Don Technical University 17.1 Khái niệm (3/) A B G H C I E D F  Hình minh họa  Tập hợp node {A, B, C, D, G, H, I, E, F}  A root  Các node lại chia thành tập {B, G, H, I}, {C, E, F} {D} Mỗi tập lại tạo thành @copyright by PhD Ngo Huu Phuc, Le Quy Don Technical University 17.1 Khái niệm (4/) A B G H C I E D F  Minh họa  Mặc dù:  Tập hợp node {A, B, C, D, G, H, I, E, F}  A root  Node E thuộc tập hợp @copyright by PhD Ngo Huu Phuc, Le Quy Don Technical University 17.1 Khái niệm (5/) • Bậc node: số node node • Bậc cây: bậc lớn node • Node gốc: node khơng có node cha • Node lá: node có bậc • Node nhánh: node có bậc khác khơng phải node gốc • Mức node:    • Gọi mức node root (cây T0) Gọi T1, T2, T3, , Tn T0 Mức T1 = Mức T2 = = Mức Tn = Mức T0 + 1=2 Chiều cao hay độ sâu cây: mức cao lớn node @copyright by PhD Ngo Huu Phuc, Le Quy Don Technical University 17.1 Khái niệm (6/)  Gốc  Cạnh (cung)  Node Gốc (root) node Cạnh (edge, arc)  Lá A B G H C I E Lá (leaf) @copyright by PhD Ngo Huu Phuc, Le Quy Don Technical University D F 17.1 Khái niệm (7/) Một số ví dụ sử dụng cây:  Cây phả hệ  Cây định  Sử dụng để tạo queue có độ ưu tiên  Tổ chức truy cập liệu nhanh, ví dụ B-tree @copyright by PhD Ngo Huu Phuc, Le Quy Don Technical University 17.1 Khái niệm (8/) Xây dựng cây:  Có thể xây dựng danh sách liên kết, nhiên thành phần có nhiều trỏ (nhiều con) • Mỗi node chứa thơng tin node • Sử dụng mảng để lưu Ví dụ khai báo cây: struct node { TreeEntry data; struct node *children[max]; }; 10 @copyright by PhD Ngo Huu Phuc, Le Quy Don Technical University 17.2 Các phương pháp duyệt (1/2)  Việc thăm tất node lần gọi duyệt  Với có n node, có n! cách duyệt khác Tuy nhiên, đa số phép duyệt khơng hữu ích  Đối với tổng quát, có cách duyệt thông thường:  Phương pháp duyệt theo chiều rộng (Breadth-first traversal)  Phương pháp duyệt theo chiều sâu (Depth-first traversal)  Với có n node, độ phức tạp O(n) 11 @copyright by PhD Ngo Huu Phuc, Le Quy Don Technical University 17.2 Các phương pháp duyệt (2/2) Một số thao tác duyệt cây:  Xem tất node  Tìm phần tử lớn hay nhỏ  Xác định số node có  Sao chép  12 @copyright by PhD Ngo Huu Phuc, Le Quy Don Technical University 17.2.1 Duyệt theo chiều sâu (1/7)  Các thao tác duyệt cây:  N: Duyệt node xét  L: Duyệt bên trái node xét  R: Duyệt lại node xét  Với thao trên, có cách bản:  Duyệt tiền thứ tự (Preorder): NLR  Duyệt trung thứ tự (Inorder): LNR  Duyệt hậu thứ tự (Postorder): LRN 13 @copyright by PhD Ngo Huu Phuc, Le Quy Don Technical University 17.2.1 Duyệt theo chiều sâu (2/7) Duyệt tiền thứ tự (Preorder): NLR Thăm node xét trước node Các node thăm theo thứ tự từ trái qua phải Với node con, việc thăm thực theo dạng tiền thứ tự 14 @copyright by PhD Ngo Huu Phuc, Le Quy Don Technical University 17.2.1 Duyệt theo chiều sâu (3/7) Duyệt tiền thứ tự (Preorder): NLR Preorder(node) Thăm node Với k node: Preorder(k) A B G H I C E F Thứ tự duyệt: A B G H I C E F D 15 @copyright by PhD Ngo Huu Phuc, Le Quy Don Technical University D 17.2.1 Duyệt theo chiều sâu (4/7) Duyệt trung thứ tự (Inorder): LNR Thăm thứ node xét dạng trung thứ tự Thăm node xét Thăm lại node xét dạng trung thứ tự 16 @copyright by PhD Ngo Huu Phuc, Le Quy Don Technical University 17.2.1 Duyệt theo chiều sâu (5/7) Duyệt trung thứ tự (Inorder): LNR Inorder(node) Inorder(FirstChildren) Thăm node Với lại k node: Inorder(k) A B G H I C E F Thứ tự duyệt: G B H I A E C F D 17 @copyright by PhD Ngo Huu Phuc, Le Quy Don Technical University D 17.2.1 Duyệt theo chiều sâu (6/7) Duyệt hậu thứ tự (Postorder): LRN Thăm thứ node xét dạng hậu thứ tự Thăm lại node xét dạng hậu thứ tự Thăm node xét 18 @copyright by PhD Ngo Huu Phuc, Le Quy Don Technical University 17.2.1 Duyệt theo chiều sâu (7/7) Duyệt hậu thứ tự (Postorder): LRN Postorder(node) Postorder(FirstChildren) Với lại k node: Postorder(k) Thăm node A B G H I C E F Thứ tự duyệt: G H I B E F C D A 19 @copyright by PhD Ngo Huu Phuc, Le Quy Don Technical University D 17.2.2 Duyệt theo chiều rộng (1/2)  Thăm node mức thấp mức cao  Tại mức, thăm từ trái sang phải  Sử dụng queue hỗ trợ trình duyệt  Phương pháp gọi Level-Order Traversal 20 @copyright by PhD Ngo Huu Phuc, Le Quy Don Technical University 17.2.2 Duyệt theo chiều rộng (2/2) Thứ tự duyệt: A B C D G H I E F A B G 21 H I C E F @copyright by PhD Ngo Huu Phuc, Le Quy Don Technical University D ... Chapter Trees Bài giảng TS Nguyễn Nam Hồng @copyright by PhD Ngo Huu Phuc, Le Quy Don Technical University 17. 1 Khái niệm (1/) 17. 1.1 Giới thiệu  Trees dùng cho cấu trúc liệu dạng phân cấp ... phân cấp cấu trúc liệu dùng cho minh họa lược đồ công việc  Tổ chức đơn vị  Cây biểu thức Khoa Công nghệ thông tin BM KHMT BM HTTT BM ANM Phòng TN Giáo viên Giáo viên BM CNPM Ví dụ cây: Tổ chức... Toán TTMT 17. 1 Khái niệm (2/) 17. 1.2 Định nghĩa tree Cây định nghĩa đệ quy sau: Một định nghĩa tập node T có dạng:  Có node đặc biệt gọi root  Các node lại phân chia rời thành n tập dạng T1,

Ngày đăng: 26/12/2021, 17:19

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

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

Tài liệu liên quan