CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT - HCMUS 2011

10 1 0
CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT - HCMUS 2011

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

Thông tin tài liệu

Kỹ Thuật - Công Nghệ - Kinh tế - Thương mại - Khoa Học - Science FIT-HCMUS 1 Giảng viên: Văn Chí Nam – Nguyễn Thị Hồng Nhung – Đặng Nguyễn Đức Tiến Cấu trúc dữ liệu và giải thuật - HCMUS 2011 2 Khái niệm Phép duyệt cây và Biểu diễn cây Cây nhị phân và Cây nhị phân tìm kiếm Cây AVL Cây AA FIT-HCMUS 2 Cấu trúc dữ liệu và giải thuật - HCMUS 2011 3 Cấu trúc dữ liệu và giải thuật - HCMUS 2011 4  Tree  Search tree  Binary search tree  Balanced tree  AVL tree  AA tree  Red-Black tree  … FIT-HCMUS 3 Cấu trúc dữ liệu và giải thuật - HCMUS 2011 5 a b d i j o p k q e f c g l m h n Cấu trúc dữ liệu và giải thuật - HCMUS 2011 6 Sơ đồ tổ chức Cây thư mục FIT-HCMUS 4 Cấu trúc dữ liệu và giải thuật - HCMUS 2011 7 Cây (cây có gốc) được xác định đệ quy như sau: 1. Tập hợp gồm 1 đỉnh là một cây. Cây này có gốc là đỉnh duy nhất của nó. 2. Gọi T1, T2, … Tk (k ≥ 1) là các cây không cắt nhau có gốc tương ứng r1, r2, … rk. Giả sử r là một đỉnh mới không thuộc các cây Ti. Khi đó, tập hợp T gồm đỉnh r và các cây Ti tạo thành một cây mới với gốc r. Các cây T1, T2, … Tk được gọi là cây con của gốc r. Cấu trúc dữ liệu và giải thuật - HCMUS 2011 8 r1 T1 r2 T2 rk Tk Nút gốc Cây con FIT-HCMUS 5 Cấu trúc dữ liệu và giải thuật - HCMUS 2011 9  node: đỉnh  root: gốc cây  leaf: lá  inner nodeinternal node: đỉnh trong  parent: đỉnh cha  child: đỉnh con  path: đường đi Cấu trúc dữ liệu và giải thuật - HCMUS 2011 10 r1 T1 r2 T2 rk Tk Nút gốc Cây con Nút lá k1 k2 k5k4k3 k6 Đường đi FIT-HCMUS 6 Cấu trúc dữ liệu và giải thuật - HCMUS 2011 11  degreeorder: bậc  Bậc của node: Số con của node  Bậc của cây: bậc lớn nhất trong số các con  depthlevel: độ sâumức  Mức (độ sâu)của node: Chiều dài của đường đi từ node gốc đến node đó cộng thêm 1.  height: chiều cao  Chiều cao cây:  Cây rỗng: ...

Giảng viên: Văn Chí Nam – Nguyễn Thị Hồng Nhung – Đặng Nguyễn Đức Tiến 2 Khái niệm Phép duyệt cây và Biểu diễn cây Cây nhị phân và Cây nhị phân tìm kiếm Cây AVL Cây AA Cấu trúc dữ liệu và giải thuật - HCMUS 2011 ©FIT-HCMUS 1 3 Cấu trúc dữ liệu và giải thuật - HCMUS 2011 4  Tree  Search tree  Binary search tree  Balanced tree  AVL tree  AA tree  Red-Black tree … Cấu trúc dữ liệu và giải thuật - HCMUS 2011 ©FIT-HCMUS 2 5 a b c d e f g h i j k l m n o p q Cấu trúc dữ liệu và giải thuật - HCMUS 2011 6 Sơ đồ tổ chức Cây thư mục Cấu trúc dữ liệu và giải thuật - HCMUS 2011 ©FIT-HCMUS 3 7 Cây (cây có gốc) được xác định đệ quy như sau: 1 Tập hợp gồm 1 đỉnh là một cây Cây này có gốc là đỉnh duy nhất của nó 2 Gọi T1, T2, … Tk (k ≥ 1) là các cây không cắt nhau có gốc tương ứng r1, r2, … rk Giả sử r là một đỉnh mới không thuộc các cây Ti Khi đó, tập hợp T gồm đỉnh r và các cây Ti tạo thành một cây mới với gốc r Các cây T1, T2, … Tk được gọi là cây con của gốc r Cấu trúc dữ liệu và giải thuật - HCMUS 2011 8 Nút gốc r1 r2 rk T1 T2 Tk Cây con Cấu trúc dữ liệu và giải thuật - HCMUS 2011 ©FIT-HCMUS 4 9  node: đỉnh  root: gốc cây  leaf: lá  inner node/internal node: đỉnh trong  parent: đỉnh cha  child: đỉnh con  path: đường đi Cấu trúc dữ liệu và giải thuật - HCMUS 2011 10 Nút gốc r1 r2 rk T1 Cây con k1 k2 T2 Tk k3 k4 k5 Nút lá Cấu trúc dữ liệu và giải thuật - HCMUS 2011 Đường đi k6 ©FIT-HCMUS 5 11  degree/order: bậc  Bậc của node: Số con của node  Bậc của cây: bậc lớn nhất trong số các con  depth/level: độ sâu/mức  Mức (độ sâu)của node: Chiều dài của đường đi từ node gốc đến node đó cộng thêm 1  height: chiều cao  Chiều cao cây:  Cây rỗng: 0  Cây khác rỗng: Mức lớn nhất giữa các node của cây Cấu trúc dữ liệu và giải thuật - HCMUS 2011 12 Nút gốc Độ cao = 4 Bậc = k Bậc = 2 r1 r2 rk T1 Cây con k1 k2 T2 Tk k3 k4 k5 Nút lá Cấu trúc dữ liệu và giải thuật - HCMUS 2011 Đường đi k6 ©FIT-HCMUS 6 13 Cấu trúc dữ liệu và giải thuật - HCMUS 2011 14  Đảm bảo đến mỗi node trên cây chính xác một lần một cách có hệ thống  Nhiều thao tác xử lý trên cây cần phải sử dụng đến phép duyệt cây  Các phép cơ bản:  Duyệt trước (Pre-order)  Duyệt giữa (In-order)  Duyệt sau (Post-order) Cấu trúc dữ liệu và giải thuật - HCMUS 2011 ©FIT-HCMUS 7 15 Parent(a)? Tìm cha một đỉnh Parent(b) = a Eldest- Child(c) = g • Parent(x) b c Tìm đỉnh con trái nhất d e f g h • EldestChild(x) NextSibling(g) = h Tìm đỉnh kề phải i • NextSibling(x) Cấu trúc dữ liệu và giải thuật - HCMUS 2011 NextSibling(h)? 16 Duyệt theo chiều sâu Duyệt trước b c • abdeijcfgkh d e f g h Duyệt giữa i j k • dbiejafckgh Duyệt sau • dijebfkghca Cấu trúc dữ liệu và giải thuật - HCMUS 2011 ©FIT-HCMUS 8 17 Pre-order Post-order void Preorder(NODE A) void Postorder(NODE A) { { NODE B; NODE B; Visit(A); B = EldestChild(A); B = EldestChild(A); while (B != ) { while (B != ) { Preorder(B); Postorder(B); B = NextSibling(B); B = NextSibling(B); } } Visit(A); } } Cấu trúc dữ liệu và giải thuật - HCMUS 2011 18 In-Order void Inorder(NODE A) { NODE B; } B = EldestChild(A); if (B != ) { Inorder(B); B = NextSibling(B); } Visit(A); while (B != ) { Inorder(B); B = NextSibling(B); } Cấu trúc dữ liệu và giải thuật - HCMUS 2011 ©FIT-HCMUS 9 19 Cấu trúc dữ liệu và giải thuật - HCMUS 2011 20 info child id next 1a 2 3 2b 4 5 3c 6 7 8 4d 5e 9 10 6f b c 7g 11 8h d e f g h 9i 10 j 11 k i j k Cấu trúc dữ liệu và giải thuật - HCMUS 2011 ©FIT-HCMUS 10

Ngày đăng: 12/03/2024, 22:03

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

Tài liệu liên quan