Bài giảng cấu trúc dữ liệu và giải thuật chương 4 ths nguyễn thị khiêm hòa

55 249 1
Bài giảng cấu trúc dữ liệu và giải thuật  chương 4   ths  nguyễn thị khiêm hòa

Đ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

Chương 4: Cây Giảng viên: Ths Nguyễn Thị Khiêm Hòa Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM Nội dung     Định nghĩa khái niệm Cây nhị phân Cây nhị phân tìm kiếm Cây tổng quát Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM Mục tiêu  Trang bị khái niệm ứng dụng Cây  Cài đặt thuật toán cây, đặc biệt nhị phân tìm kiếm Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM Khái niệm   Cây tập hữu hạn nút (Tree node):  Có nút gốc (root)  Các nút lại phân hoạch thành n tập riêng biệt T1, T2, …, Tn, với Ti  Giữa nút có quan hệ phân cấp (hierarchical relationship) “cha con” Cây nút rỗng (null tree) Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM Biểu diễn  Bằng đồ thị  Bằng giản đồ  Bằng danh sách (các dấu ngoặc lồng nhau)  Bằng phương pháp Identatio Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM Biểu diễn  Bằng đồ thị A / B A B C F D C D G E H J F E G H I I J K Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM Biểu diễn  Bằng giản đồ B D A J G H I C F E Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM Biểu diễn  Bằng danh sách (các dấu ngoặc lồng nhau) (/( A (C (F), D (G ( J ) ) ) ), (B (E ( H, I ) ) ) ) A / A B C F D G D C E H J B I F E I J G H K ( A ( B ( E, F( I, J, K) ), C ( G,H ), D ) ) Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM Biểu diễn  Bằng phương pháp Indentatio / A C / F A D C G J B E H I F B D G E H I J Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM Các thuật ngữ Bậc nút bậc  Nút gốc, Nút nút nhánh  Nút cha (Parent), nút (children)  A B E K C F L G D H I J M Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 10 Xóa nút nhị phân tìm kiếm  Trường hợp :Nút cần xóa nút root 44 Xóa: X = 40 Đơn giản : Xóa nút X, không móc nối đến nút khác 18 88 13 59 37 15 23 40 55 108 71 Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 41 Xóa nút nhị phân tìm kiếm  Trường hợp 2: Nút cần xóa có trái root 44 Xóa X=37 18 88 13 59 37 15 23 55 108 71 Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 42 Xóa nút nhị phân tìm kiếm  Trường hợp 2: Nút cần xóa có phải root 44 Xóa X=37 18 13 88 15 108 59 37 40 55 Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 71 43 Xóa nút nhị phân tìm kiếm  Trường hợp : Nút cần xóa có hai trái phải 44 Xóa nút X=18 root 18 15 88 13 59 37 15 23 40 55 108 71 Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 30 44 Cây M_phân (M_ary)  Định nghĩa  Cây m phân mà nút có tối đa m nút (cây con)  Biểu diễn m phân liên kết động  Mỗi nút có m+1 trường, với m mối nối  Với m phân đầy đủ, có n(m-1)+1 mối liên kết NULL  Cây m phân đầy đủ có chiều cao logmN (N:số nút) Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 45 Cây M phân  Phép duyệt tổng quát LNR(T)  Nếu T rỗng, dừng  Ngược lại, T1,…,Tn gốc T  LNR(T1), T1 thứ gốc T  Thăm gốc T  Duyệt T2,…,Tn T theo thứ tự Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 46 Cây M_phân  Phép duyệt tổng quát LRN(T)  Nếu T rỗng, dừng  Ngược lại, T1,…,Tn gốc T  LNR(T1), T1 thứ gốc T  Duyệt T2,…,Tn T theo thứ tự  Thăm gốc T Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 47 Cây M_phân  Duyệt theo mức  Duyệt theo chiều rộng  Ý tưởng  Tổ chức thành hàng đợi  Đưa nút gốc vào hàng đợi  Lặp  Lấy nút khỏi hàng đợi  Duyệt nút T  Đưa nút T (nếu có) vào hàng đợi Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 48 Cây M_phân tìm kiếm    Tương tự nhị phân tìm kiếm nút có m nút M lớn bậc thấp Cây m phân tìm kiếm cân bằng: B_cây Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 49 B_Cây  B-Tree bậc M M-Phân tìm kiếm có tính chất:  Mỗi node (ngoại trừ gốc) có M/2 node  Node gốc (nếu nút lá) có nút  Mọi nút nằm mức  Các khóa duợc xếp theo tìm kiếm Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 50 B_Cây_Ứng dụng Hạn chế số thao tác đọc lần tìm kiếm  Thích hợp cho việc tìm kiếm nhớ  Chiều cao = logMN  chiều cao giảm nhanh  Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 51 B Cây_Tìm kiếm  Tương tự nhị phân tìm kiếm Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 52 B Cây_Thêm nút vào  Ý tưởng: Tìm vị trí thích hợp để thêm vào Nút thêm vào nút  Nếu nút chưa đầy  thêm vào  Nếu đầy: phân đôi nút  Chuyển phần tử lên nút cha  Hai bên nút thành hai nhánh  Việc phân đôi lan truyền Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 53 B Cây_Thêm nút vào  Thực thêm nút sau vào B_cây bậc 5: 12 25 14 28 17 52 16 48 68 26 29 53 55 45 Kết quả: Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 54 Q&A Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 55 [...]... phát động, bao gồm dữ liệu và địa chỉ hai cây con pLeft, pRight, liên kết tới cây con trái và cây con phải  Nút lá có hai liên kết trái phải đều rỗng  Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 21 Lưu trữ kế tiếp cây nhị phân Con của nút thứ i là nút thứ 2i+1 và 2i+2  Cha của nút thứ j là nút [(j-1)/2]  R 1 0 A B 3 4 C 2 5 D 6 E I R A B C D I E V[0] V[1] V[2] V[3] V [4] V[5] V[6] Khoa Công...Các thuật ngữ  Đường đi (path) / A C F B D G E H I J Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 11 Các thuật ngữ  Mức của nút và chiều cao của cây Root 1 2 Chiều cao của cây: 5 3 4 5 Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 12 Các thuật ngữ Tổ tiên (ancestors) của một nút  Con cháu (Descendant) của một nút:... B D G E G Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 23 Sử dụng liên kết  Cấu tạo của nút  Tạo lập bằng cách cấp phát bộ nhớ động  Mỗi nút gồm có các thông tin:   Dữ liệu (data) Địa chỉ 2 cây con pLeft, pRight liên kết đến nút con trái và nút con phải Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 24 Cây nhị phân public class Node: IComparable where T: IComparable... Đại học Ngân hàng TP.HCM 13 Cây có thứ tự và Rừng Cây có thứ tự (ordered tree)  Một cây gọi là có thứ tự khi ta thay đổi vị trí của các cây con, ta nhận được một cây mới  Rừng (forest)  Tập hợp hữu hạn các cây phân biệt  Nếu bỏ đi nút gốc của một cây, ta sẽ thu được một rừng gồm nhiều cây phân biệt  Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 14 Cây nhị phân  Định nghĩa Cây con trái Cây... Node right; public Node(T data) { this.data = data; this.left = this.right = null; } //Đóng gói DL //các phương thức } Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 25 Cây nhị phân //Đóng gói dữ liệu: Properties public T Data { get{ return this.data;} set{ this.data = value;} } public Node Left { get { return this.left; } } public Node Right { get { return this.right; } Khoa Công nghệ... TP.HCM 35 Cây nhị phân tìm kiếm (BST_Binary Search Tree)  Định nghĩa  Cây nhị phân  Mỗi nút có 1 khóa duy nhất  Các nút trên cây con trái nhỏ hơn nút gốc  Các nút trên cây con phải lớn hơn nút gốc 5 44 18 13 88 37 23 93 90 98 Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 30 36 ... sau (LRN)- Đệ qui  Duyệt cây con trái theo thứ tự sau  Duyệt cây con phải theo thứ tự sau  Thăm gốc R A B C F D E G H I J F C J G D A Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM H I E B R 34 Cây nhị phân //In danh sách public void PrintTree(Node root) { if(root != null) { PrintTree(root.left); PrintTree(root.right); Console.Write("{0} ", root.data); } } Khoa Công nghệ Thông tin - Đại... Ngân hàng TP.HCM 16 Tính chất của cây nhị phân  Số nút tối đa mức i trong cây 2i-1  Số nút tối đa trong cây là 2h-1 (h chiều cao của cây)  Chiều cao của cây h  log2N (N là số nút trong cây) 1 2 3 4 5 Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 17 Cây nhị phân hoàn chỉnh / A B D C G J I E G Các nút ứng với các mức trừ mức cuối đều đạt tối đa, ở mức cuối, các nút đều đạt về phía trái Khoa ... X= 50 root 44 18 88 X < 88 13 37 15 X > 44 23 59 X < 59 40 55 108 71 X < 55 Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 50 38 Tìm nút có khóa cho trước root Tìm X = 55 X >44 44 18 88 X... Thông tin - Đại học Ngân hàng TP.HCM 40 Xóa nút nhị phân tìm kiếm  Trường hợp :Nút cần xóa nút root 44 Xóa: X = 40 Đơn giản : Xóa nút X, không móc nối đến nút khác 18 88 13 59 37 15 23 40 55 108... Ngân hàng TP.HCM 42 Xóa nút nhị phân tìm kiếm  Trường hợp 2: Nút cần xóa có phải root 44 Xóa X=37 18 13 88 15 108 59 37 40 55 Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 71 43 Xóa nút nhị

Ngày đăng: 03/12/2015, 02:15

Từ khóa liên quan

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

Tài liệu liên quan