Cấu trúc cây - Trees ! ! ! ! Cây và các ứng dụng của cây Một số dạng cây ppt

52 822 7
Cấu trúc cây - Trees ! ! ! ! Cây và các ứng dụng của cây Một số dạng cây ppt

Đ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

1 Spring 2004Data Structure & Algorithm -Nguyen Tri Tuan - Khoa CNTT ĐH KHTN Tp.HCM 1 ! Cây và các ứng dụng của cây ! Một số dạng cây thường dùng: cây nhị phân, cây nhị phân tìm kiếm, cây cân bằng (AVL) ! Các thuật toán trên cây ! Đánh giá thuật toán Cấu trúc cây -Trees Spring 2004Data Structure & Algorithm -Nguyen Tri Tuan - Khoa CNTT ĐH KHTN Tp.HCM 2 Nội dung trình bày ! Các khái niệm và thuật ngữ cơ bản ! Tổng quan về cây nhị phân (Binary Tree) ! Cây nhị phân tìm kiếm (BST –Binary Search Tree) ! Cây nhị phân tìm kiếm cân bằng (AVL Tree) 2 Spring 2004Data Structure & Algorithm -Nguyen Tri Tuan - Khoa CNTT ĐH KHTN Tp.HCM 3 Các khái niệm và thuật ngữ cơ bản ! Các ví dụ ! Định nghĩa cấu trúc cây ! Các thuật ngữ liên quan Spring 2004Data Structure & Algorithm -Nguyen Tri Tuan - Khoa CNTT ĐH KHTN Tp.HCM 4 Các khái niệm và thuật ngữ cơ bản Các ví dụ ! Ví dụ 1: bài toán đưa thư ! Trên thế giới hiện có 6 tỉ người ! Tuấn, khoa CNTT, ĐH KHTN, Tp.HCM, Việt nam ! Cách tìm ra “Tuấn” nhanh nhất ? ! Sử dụng mảng (array) ? ! Sử dụng danh sách liên kết (linked list) ? 3 Spring 2004Data Structure & Algorithm -Nguyen Tri Tuan - Khoa CNTT ĐH KHTN Tp.HCM 5 Các khái niệm và thuật ngữ cơ bản Các ví dụ China Korea Vietnam Trái đất Tp.HCM Hà nội ĐH.KHTN ĐH.BK Khoa CNTT Khoa Toán “Tuấn” Spring 2004Data Structure & Algorithm -Nguyen Tri Tuan - Khoa CNTT ĐH KHTN Tp.HCM 6 Các khái niệm và thuật ngữ cơ bản Các ví dụ ! Ví dụ 2: cây biểu thức (a-b)*(c/d) * 0 / a b c d 4 Spring 2004Data Structure & Algorithm -Nguyen Tri Tuan - Khoa CNTT ĐH KHTN Tp.HCM 7 Các khái niệm và thuật ngữ cơ bản Các ví dụ ! Cây là 1 cấu trúc dữ liệu quan trọng để biểu diễn tính “kế thừa” ! Các cây mô tả tính kế thừa: ! Cây gia phả (trong các dòng họ) ! Cây phân cấp các loài (trong sinh vật) ! … Spring 2004Data Structure & Algorithm -Nguyen Tri Tuan - Khoa CNTT ĐH KHTN Tp.HCM 8 Các khái niệm và thuật ngữ cơ bản Định nghĩa cấu trúc cây ! Một cây <T> (Tree) là: ! Một tập các phần tử, gọi là các nút (Node) p 1 ,p 2 ,…,p N ! Nếu N=0, cây <T> gọi là cây rỗng (NULL) ! Nếu N>0: ! Tồn tại duy nhất 1 nút p k gọi là gốc của cây ! Các nút còn lại được chia thành m tập không giao nhau: T 1 , T 2 , …, T m ! Mỗi <T i > là 1 cây con của cây <T> 5 Spring 2004Data Structure & Algorithm -Nguyen Tri Tuan - Khoa CNTT ĐH KHTN Tp.HCM 9 Các khái niệm và thuật ngữ cơ bản Định nghĩa cấu trúc cây a b k i g c h e f d j Cây <T> rỗng (NULL) Nút gốc Cây <T> Cây con <T 1 > Cây con <T 2 > Cây con <T 3 > Cây con <T 4 > Spring 2004Data Structure & Algorithm -Nguyen Tri Tuan - Khoa CNTT ĐH KHTN Tp.HCM 10 Các khái niệm và thuật ngữ cơ bản Định nghĩa cấu trúc cây a c k d b i h j g e f Cây con <T 1 > Cây con <T 2 > Cây con <T 3 > Cây con <T 4 > Cây <T> 6 Spring 2004Data Structure & Algorithm -Nguyen Tri Tuan - Khoa CNTT ĐH KHTN Tp.HCM 11 Các khái niệm và thuật ngữ cơ bản Định nghĩa cấu trúc cây a c k dbi h j g ef Cây con <T 1 > Cây con <T 2 > Cây con <T 3 > Cây con <T 4 > Cây <T> Spring 2004Data Structure & Algorithm -Nguyen Tri Tuan - Khoa CNTT ĐH KHTN Tp.HCM 12 Các khái niệm và thuật ngữ cơ bản Định nghĩa cấu trúc cây ! Các tính chất của cây: ! Nút gốc không có nút cha ! Mỗi nút khác chỉ có 1 nút cha ! Mỗi nút có thể có nhiều nút con ! Không có chu trình 7 Spring 2004Data Structure & Algorithm -Nguyen Tri Tuan - Khoa CNTT ĐH KHTN Tp.HCM 13 Các khái niệm và thuật ngữ cơ bản Các thuật ngữ liên quan ! Nút (Node): là 1 phần tử trong cây. Mỗi nút có thể chứa 1 dữ liệu bất kỳ ! Nhánh (Branch): là đoạn nối giữa 2 nút ! Nút cha (Parent node) ! Nút con (Child node) ! Nút anh em (sibling nodes): là những nút có cùng nút cha ! Bậc của 1 nút p i : là số nút con của p i ! Bậc (a) = 4; Bậc (j) = 3; Bậc (g) = 2; ! Bậc (k) = 1; Bậc (c) = 0 Spring 2004Data Structure & Algorithm -Nguyen Tri Tuan - Khoa CNTT ĐH KHTN Tp.HCM 14 Các khái niệm và thuật ngữ cơ bản Các thuật ngữ liên quan ! Nút gốc (Root node): nút không có nút cha ! Nút lá (Leaf node, haynút ngoài –External node): nút có bậc = 0 (không có nút con) ! Nút nội (Internal node): là nút có nút cha và có nút con ! Cây con (Subtree) ! Trắc nghiệm: có bao nhiêu cây con trong cây <T> ? 8 Spring 2004Data Structure & Algorithm -Nguyen Tri Tuan - Khoa CNTT ĐH KHTN Tp.HCM 15 Các khái niệm và thuật ngữ cơ bản Các thuật ngữ liên quan ! Bậc của cây: là bậc lớn nhất của các nút trong cây ! Bậc (<T>) = max {bậc (p i ) / p i ∈ <T>} ! Bậc của cây <T> ? ! Đường đi (Path) giữa nút p i đến nút p j : là dảy các nút liên tiếp từ pi đến pj sao cho giữa hai nút kề nhau đều có nhánh ! Path(a, d) ? Spring 2004Data Structure & Algorithm -Nguyen Tri Tuan - Khoa CNTT ĐH KHTN Tp.HCM 16 Các khái niệm và thuật ngữ cơ bản Các thuật ngữ liên quan ! Mức (Level): ! Mức (p) = 0 nếu p = root ! Mức (p) = 1 + Mức (Cha (p)) nếu p!=root ! Chiều cao của cây (Height - h T ): đường đi dài nhất từ nút gốc đến nút lá ! h T = max {Path(root, p i ) / p i là nút lá ∈ <T>} ! h T ? 9 Spring 2004Data Structure & Algorithm -Nguyen Tri Tuan - Khoa CNTT ĐH KHTN Tp.HCM 17 Các khái niệm và thuật ngữ cơ bản Các thuật ngữ liên quan Spring 2004Data Structure & Algorithm -Nguyen Tri Tuan - Khoa CNTT ĐH KHTN Tp.HCM 18 Các khái niệm và thuật ngữ cơ bản Các thuật ngữ liên quan ! Cây hoàn chỉnh (Complete tree) với h mức: là 1 cây thoả các điều kiện ! Những nút từ mức 0 đến mức h-1 đều đầy đủ ! Những nút ở mức h được thêm vào cây từ trái sang phải 10 Spring 2004Data Structure & Algorithm -Nguyen Tri Tuan - Khoa CNTT ĐH KHTN Tp.HCM 19 Các khái niệm và thuật ngữ cơ bản Các thuật ngữ liên quan Cây hoàn chỉnh ? Spring 2004Data Structure & Algorithm -Nguyen Tri Tuan - Khoa CNTT ĐH KHTN Tp.HCM 20 Các khái niệm và thuật ngữ cơ bản Các thuật ngữ liên quan Cây hoàn chỉnh ? [...]... Tree) ! ! ! ! ! ! ! Ý nghĩa của cây BST Định nghĩa Ví dụ Mô tả cấu trúc dữ liệu Xây dựng các thao tác cơ bản trên cây Các đánh giá Trắc nghiệm Spring 2004 Data Structure & Algorithm - Nguyen Tri Tuan - Khoa CNTT ĐH KHTN Tp.HCM 43 Cây nhị phân tìm kiếm Ý nghĩa của cây BST ! ! ! ! Điểm yếu và điểm mạnh của việc sử dụng mảng ? Điểm yếu và điểm mạnh của việc sử dụng danh sách liên kết ? Cần có 1 cấu trúc. .. Tuan - Khoa CNTT ĐH KHTN Tp.HCM 47 Cây nhị phân tìm kiếm Mô tả cấu trúc dữ liệu ! ! Cách lưu trữ cây BST giống như cây nhị phân Xem lại phần “Tổng quan về cây nhị phân - Cách thức lưu trữ cây Spring 2004 Data Structure & Algorithm - Nguyen Tri Tuan - Khoa CNTT ĐH KHTN Tp.HCM 48 24 Cây nhị phân tìm kiếm Xây dựng các thao tác cơ bản trên cây ! Các thao tác trên cây BST: ! ! ! ! ! Spring 2004 Tạo lập cây. .. liên quan ! Mức h của cây đầy đủ bậc d có dh nút ! ! VD mức h=2 của cây bậc 3 có bao nhiêu nút ? h mức đầu tiên của cây đầy đủ bậc d có số nút là: ! ! Spring 2004 1 + d + d2 + d3 + … + dh-1 = (dh - 1)/(d – 1) 3 mức đầu tiên của cây bậc 3 có bao nhiêu nút ? Data Structure & Algorithm - Nguyen Tri Tuan - Khoa CNTT ĐH KHTN Tp.HCM 25 Tổng quan về cây nhị phân ! ! ! Định nghĩa Cách thức lưu trữ cây Các phương... Algorithm - Nguyen Tri Tuan - Khoa CNTT ĐH KHTN Tp.HCM 30 15 Tổng quan về cây nhị phân Cách thức lưu trữ cây, sử dụng mảng # 0 1 2 3 4 5 6 Nút * / a b c d Spring 2004 Con trái Con phải 1 2 3 4 5 6 -1 -1 -1 -1 -1 -1 -1 -1 * 0 a / b c Data Structure & Algorithm - Nguyen Tri Tuan - Khoa CNTT ĐH KHTN Tp.HCM d 31 Tổng quan về cây nhị phân Cách thức lưu trữ cây, sử dụng mảng // Định nghĩa các cấu trúc dữ liệu... của cả mảng và danh sách liên kết Trong cây nhị phân, chi phí để tìm kiếm 1 phần tử ? Spring 2004 Data Structure & Algorithm - Nguyen Tri Tuan - Khoa CNTT ĐH KHTN Tp.HCM 44 22 Cây nhị phân tìm kiếm Định nghĩa ! Cây nhị phân tìm kiếm là: ! ! Một cây nhị phân Mỗi nút p của cây đều thỏa: ! ! Spring 2004 Tất cả các nút thuộc cây con trái (p->pLeft) đều có giá trị nhỏ hơn giá trị của p ∀q ∈ p->pLeft: q->Data... đếm số nút trong cây ? Viết thủ tục/hàm đếm số nút lá trong cây ? Viết thủ tục/hàm tính chiều cao của cây ? ! ! ! ! Data Structure & Algorithm - Nguyen Tri Tuan - Khoa CNTT ĐH KHTN Tp.HCM Spring 2004 41 Tổng quan về cây nhị phân Các phương pháp duyệt cây ! Trắc nghiệm: ! Spring 2004 Viết giải thuật duyệt cây theo mức ? Data Structure & Algorithm - Nguyen Tri Tuan - Khoa CNTT ĐH KHTN Tp.HCM 42 21 Cây. .. Tổng quan về cây nhị phân Cách thức lưu trữ cây, sử dụng con trỏ // Định nghĩa các cấu trúc dữ liệu … (tiếp theo) typedef struct BIN_TREE { int Count; // Số nút trong cây BT_NODE *pRoot; // con trỏ đến nút gốc }; // binary tree Data Structure & Algorithm - Nguyen Tri Tuan - Khoa CNTT ĐH KHTN Tp.HCM Spring 2004 35 Tổng quan về cây nhị phân Các phương pháp duyệt cây ! Có 3 cách duyệt cây: ! ! ! Spring 2004... Structure & Algorithm - Nguyen Tri Tuan - Khoa CNTT ĐH KHTN Tp.HCM 28 14 Tổng quan về cây nhị phân Định nghĩa ! Trắc nghiệm: Hãy vẽ tất cả các cây nhị phân có 3 nút ? Data Structure & Algorithm - Nguyen Tri Tuan - Khoa CNTT ĐH KHTN Tp.HCM Spring 2004 29 Tổng quan về cây nhị phân Cách thức lưu trữ cây ! Có 2 cách tổ chức cây nhị phân: ! ! Spring 2004 Lưu trữ bằng mảng Lưu trữ bằng con trỏ cấu trúc Data Structure.. .Các khái niệm và thuật ngữ cơ bản Các thuật ngữ liên quan ! Cây đầy đủ (Full tree): là 1 cây thoả ! ! Spring 2004 Tất cả các nút lá đều nằm trên cùng 1 mức Tất cả những nút khác có cùng bậc với cây Data Structure & Algorithm - Nguyen Tri Tuan - Khoa CNTT ĐH KHTN Tp.HCM 21 Các khái niệm và thuật ngữ cơ bản Các thuật ngữ liên quan Cây đầy đủ ? Spring 2004 Data Structure & Algorithm - Nguyen... Tri Tuan - Khoa CNTT ĐH KHTN Tp.HCM 22 11 Các khái niệm và thuật ngữ cơ bản Các thuật ngữ liên quan Cây đầy đủ ? Spring 2004 Data Structure & Algorithm - Nguyen Tri Tuan - Khoa CNTT ĐH KHTN Tp.HCM 23 Các khái niệm và thuật ngữ cơ bản Các thuật ngữ liên quan Cây đầy đủ ? Spring 2004 Data Structure & Algorithm - Nguyen Tri Tuan - Khoa CNTT ĐH KHTN Tp.HCM 24 12 Các khái niệm và thuật ngữ cơ bản Các thuật . Algorithm -Nguyen Tri Tuan - Khoa CNTT ĐH KHTN Tp.HCM 1 ! Cây và các ứng dụng của cây ! Một số dạng cây thường dùng: cây nhị phân, cây nhị phân tìm kiếm, cây cân bằng (AVL) ! Các thuật toán trên cây !. bản Định nghĩa cấu trúc cây ! Một cây <T> (Tree) là: ! Một tập các phần tử, gọi là các nút (Node) p 1 ,p 2 ,…,p N ! Nếu N=0, cây <T> gọi là cây rỗng (NULL) ! Nếu N>0: ! Tồn tại duy. về cây nhị phân Cách thức lưu trữ cây, sử dụng mảng * 0 / a b c d -1 -1 d6 -1 -1 c5 -1 -1 b4 -1 -1 a3 65/2 4 3-1 21*0 Con phảiCon tráiNút# Spring 2004Data Structure & Algorithm -Nguyen Tri Tuan - Khoa

Ngày đăng: 01/08/2014, 07:20

Từ khóa liên quan

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

Tài liệu liên quan