1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Lecture 12 trees unsaved tài liệu Kỹ thuật Lập trình

20 420 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 20
Dung lượng 151,39 KB

Nội dung

Lecture 12 Trees (1/2) Nội dung học: 12.1 Khái niệm 12.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 PhD Tống Minh Đức – Mob: 0984-485-888 – Email: tmduc08@Gmail.com / 11 12.1 Khái niệm (1/) 12.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 Phòng TN BM HTTT Giáo viên BM ANM BM CNPM Giáo viên Ví dụ cây: Tổ chức Khoa CNTT PhD Tống Minh Đức – Mob: 0984-485-888 – Email: tmduc08@Gmail.com / 11 BM Toán TTMT 12.1 Khái niệm (2/) 12.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 T 1, T2,…,Tn, Ti PhD Tống Minh Đức – Mob: 0984-485-888 – Email: tmduc08@Gmail.com / 11 12.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 PhD Tống Minh Đức – Mob: 0984-485-888 – Email: tmduc08@Gmail.com / 11 12.1 Khái niệm (4/) A B G H C I  F Minh họa  E 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 PhD Tống Minh Đức – Mob: 0984-485-888 – Email: tmduc08@Gmail.com D / 11 12.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 T , T , T , , Tn T  • Gọi mức node root (cây T 0) Mức T = Mức T = = Mức Tn = Mức T + 1=2 Chiều cao hay độ sâu cây: mức cao lớn node PhD Tống Minh Đức – Mob: 0984-485-888 – Email: tmduc08@Gmail.com / 11 12.1 Khái niệm (6/)  Gốc  Cạnh (cung)   Gốc (root) Node node Cạnh (edge, arc) Lá A B G H C I E Lá (leaf) PhD Tống Minh Đức – Mob: 0984-485-888 – Email: tmduc08@Gmail.com / 11 D F 12.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 PhD Tống Minh Đức – Mob: 0984-485-888 – Email: tmduc08@Gmail.com / 11 12.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]; }; PhD Tống Minh Đức – Mob: 0984-485-888 – Email: tmduc08@Gmail.com / 11 12.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 qt, 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) PhD Tống Minh Đức – Mob: 0984-485-888 – Email: tmduc08@Gmail.com 10 / 11 12.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  PhD Tống Minh Đức – Mob: 0984-485-888 – Email: tmduc08@Gmail.com 11 / 11 12.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 PhD Tống Minh Đức – Mob: 0984-485-888 – Email: tmduc08@Gmail.com 12 / 11 12.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ự PhD Tống Minh Đức – Mob: 0984-485-888 – Email: tmduc08@Gmail.com 13 / 11 12.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 PhD Tống Minh Đức – Mob: 0984-485-888 – Email: tmduc08@Gmail.com 14 / 11 D 12.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ự PhD Tống Minh Đức – Mob: 0984-485-888 – Email: tmduc08@Gmail.com 15 / 11 12.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 PhD Tống Minh Đức – Mob: 0984-485-888 – Email: tmduc08@Gmail.com 16 / 11 D 12.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 PhD Tống Minh Đức – Mob: 0984-485-888 – Email: tmduc08@Gmail.com 17 / 11 12.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 PhD Tống Minh Đức – Mob: 0984-485-888 – Email: tmduc08@Gmail.com 18 / 11 D 12.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 PhD Tống Minh Đức – Mob: 0984-485-888 – Email: tmduc08@Gmail.com 19 / 11 12.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 H I PhD Tống Minh Đức – Mob: 0984-485-888 – Email: tmduc08@Gmail.com C E 20 / 11 F D .. .12. 1 Khái niệm (1/) 12. 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... CNTT PhD Tống Minh Đức – Mob: 0984-485-888 – Email: tmduc08@Gmail.com / 11 BM Toán TTMT 12. 1 Khái niệm (2/) 12. 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: ... / 11 12. 1 Khái niệm (6/)  Gốc  Cạnh (cung)   Gốc (root) Node node Cạnh (edge, arc) Lá A B G H C I E Lá (leaf) PhD Tống Minh Đức – Mob: 0984-485-888 – Email: tmduc08@Gmail.com / 11 D F 12. 1

Ngày đăng: 28/08/2014, 21:58

TỪ KHÓA LIÊN QUAN