1. Trang chủ
  2. » Công Nghệ Thông Tin

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

Đ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 55
Dung lượng 879,21 KB

Nội dung

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