Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 10 cung cấp cho người học những kiến thức như: tổng quan về cấu trúc cây; thao tác trên cấu trúc cây; cây các loại cây; cây nhị phân; duyệt cây. Mời các bạn cùng tham khảo!
KHOA CÔNG NGHỆ THÔNG TIN CẤU TRÚC DỮ LIỆU & GIẢI (Data Structure and Algorithm) THUẬT CHƯƠNG 10: CẤU TRÚC CÂY (TREE) GVGD: Th.S Trần Công Thanh HỌC KỲ I – NĂM HỌC 2020-2021 KHÓA 25T-IT 01 TỔNG 02 NỘI DUNG QUAN THAO TÁC TRÊN CT CÂY 03 CÁC LOẠI 04 CÂY CÂY NHỊ PHÂN 05 DUYỆT CÂY KHÁI NIỆM CƠ BẢN ▪ Cây cấu trúc phân tầng phần tử gọi nút (node) • Mỗi node chứa phần tử đơn • Mỗi phần tử có nhiều nhánh kết nối với nút khác, gọi nút ▪ Mọi có nút gốc – root 感谢您下载包图网平台上提供的PPT作品,为了您和包图网以及原创作者的利益,请勿复制、传播、销售,否则将承担法律责任!包图网将对作品进行维权,按照传播下载次数进行十倍的索取赔偿! ibaotu.com • Mọi nút trừ nút gốc nút khác – nút cha KHOA CÔNG NGHỆ THÔNG TIN 3 CẤU TRÚC CÂY TRONG THỰC TẾ ▪ Thơng thường mơ hình tổ chức có cấu trúc cây: • Một tổ chức khơng có thứ tự có cấu trúc phân tầng, tổ chức phòng ban thương mại 感谢您下载包图网平台上提供的PPT作品,为了您和包图网以及原创作者的利益,请勿复制、传播、销售,否则将承担法律责任!包图网将对作品进行维权,按照传播下载次数进行十倍的索取赔偿! ibaotu.com Engineering Medicine University Science Chemistry Physics KHOA CÔNG NGHỆ THÔNG TIN Education Maths Law Arts Languages History 4 ▪ Sơ đồ phân loại sinh học loại phổ biến ▪ Cây khơng có thứ tự có tổ chức phân lớp 感谢您下载包图网平台上提供的PPT作品,为了您和包图网以及原创作者的利益,请勿复制、传播、销售,否则将承担法律责任!包图网将对作品进行维权,按照传播下载次数进行十倍的索取赔偿! ibaotu.com animals worms ants insects beetles arachnids vertebrates flies stars fish reptites birds sponges mammals snakes lizards crocodiles KHOA CÔNG NGHỆ THÔNG TIN ▪ Một đồ di chuyển thường dùng ứng dụng định vị robot dùng lưu trữ hướng theo giải thuật để khám phá tồn khơng gian xung quanh 感谢您下载包图网平台上提供的PPT作品,为了您和包图网以及原创作者的利益,请勿复制、传播、销售,否则将承担法律责任!包图网将对作品进行维权,按照传播下载次数进行十倍的索取赔偿! ibaotu.com KHOA CƠNG NGHỆ THÔNG TIN ▪ Tổ chức file thư mục ▪ Chúng tả mơ hình hóa tổ chức file cách dùng không xếp theo mơ hình nút lá, thư mục nút cha 感谢您下载包图网平台上提供的PPT作品,为了您和包图网以及原创作者的利益,请勿复制、传播、销售,否则将承担法律责任!包图网将对作品进行维权,按照传播下载次数进行十倍的索取赔偿! ibaotu.com root doc bin cp KHOA CÔNG NGHỆ THÔNG TIN grep lib sort etc mail motd tmp users passwd Thao tác cấu trúc Nó phải ▪ truy cập vào nút gốc ▪ truy cập tất tổ tiên nút ▪ truy cập tất cháu nút ▪ thêm nút vào cây, ▪ xóa nút định khỏi ▪ Duyệt 感谢您下载包图网平台上提供的PPT作品,为了您和包图网以及原创作者的利益,请勿复制、传播、销售,否则将承担法律责任!包图网将对作品进行维权,按照传播下载次数进行十倍的索取赔偿! ibaotu.com KHOA CÔNG NGHỆ THÔNG TIN Một số định nghĩa This node is the parent This is an edge 感谢您下载包图网平台上提供的PPT作品,为了您和包图网以及原创作者的利益,请勿复制、传播、销售,否则将承担法律责任!包图网将对作品进行维权,按照传播下载次数进行十倍的索取赔偿! ibaotu.com KHOA CÔNG NGHỆ THÔNG TIN Một số định nghĩa 感谢您下载包图网平台上提供的PPT作品,为了您和包图网以及原创作者的利益,请勿复制、传播、销售,否则将承担法律责任!包图网将对作品进行维权,按照传播下载次数进行十倍的索取赔偿! ibaotu.com KHOA CÔNG NGHỆ THÔNG TIN 10 BST – Cài đặt ▪ Delete: xóa phải đảm bảo BST • Thực tìm nút có giá trị x • Nếu nút nút lá, delete nút • Ngược lại ▪ 感谢您下载包图网平台上提供的PPT作品,为了您和包图网以及原创作者的利益,请勿复制、传播、销售,否则将承担法律责任!包图网将对作品进行维权,按照传播下载次数进行十倍的索取赔偿! Thay nút hai nút sau ibaotu.com • Y nút lớn bên trái • Z nút nhỏ bên phải ▪ ▪ Chọn nút Y Z để chỗ Giải phóng nút KHOA CÔNG NGHỆ THÔNG TIN 34 34 34 BST – Cài đặt - Delete ▪ TH 1: nút p nút lá, xố bình thường 10 10 Xóa X = 25 感谢您下载包图网平台上提供的PPT作品,为了您和包图网以及原创作者的利益,请勿复制、传播、销售,否则将承担法律责任!包图网将对作品进行维权,按照传播下载次数进行十倍的索取赔偿! ibaotu.com KHOA CÔNG NGHỆ THÔNG TIN 30 25 45 30 45 35 35 35 BST – Cài đặt – Delete ▪ TH2: p có • Cho nút cha p trỏ tới nút p • Hủy p 感谢您下载包图网平台上提供的PPT作品,为了您和包图网以及原创作者的利益,请勿复制、传播、销售,否则将承担法律责任!包图网将对作品进行维权,按照传播下载次数进行十倍的索取赔偿! ibaotu.com 10 10 KHOA CÔNG NGHỆ THÔNG TIN Xóa X=5 30 25 45 30 25 36 45 36 36 BST – Cài đặt – Delete ▪ TH3: nút p có con, chọn nút thay để xóa theo cách sau • Nút lớn bên trái (lp->right==NULL) • Nút nhỏ bên phải (rp->left==NULL) 感谢您下载包图网平台上提供的PPT作品,为了您和包图网以及原创作者的利益,请勿复制、传播、销售,否则将承担法律责任!包图网将对作品进行维权,按照传播下载次数进行十倍的索取赔偿! ibaotu.com lp - Nút lớn bên trái KHOA CÔNG NGHỆ THÔNG TIN Rp - Nút nhỏ bên phải 37 37 CÂU HỎI Cài đặt cấu trúc liệu liên kết cho nhị phân tìm kiếm Cài đặt thao tác xây dựng cây: Init, IsEmpty, CreateNode Cài đặt thao tác cập nhật: Insert, Remove, ClearTree Xuất danh sách tăng dần giảm dần 感谢您下载包图网平台上提供的PPT作品,为了您和包图网以及原创作者的利益,请勿复制、传播、销售,否则将承担法律责任!包图网将对作品进行维权,按照传播下载次数进行十倍的索取赔偿! ibaotu.com KHOA CÔNG NGHỆ THÔNG TIN 38 38 38 CÂY NHỊ PHÂN TÌM KIẾM CÂN BẰNG ▪ Do hai nhà tốn học người Nga Adelson Velski Landis xây dựng vào năm 1962 nên gọi AVL ▪ Nội dung • 9.1 Định nghĩa • 9.2 Các tác vụ xoay • 9.3 Thêm nút vào AVL • 9.4 Cài đặt AVL 感谢您下载包图网平台上提供的PPT作品,为了您和包图网以及原创作者的利益,请勿复制、传播、销售,否则将承担法律责任!包图网将对作品进行维权,按照传播下载次数进行十倍的索取赔偿! ibaotu.com KHOA CÔNG NGHỆ THÔNG TIN 39 39 39 Định nghĩa ▪ Cây NPTK cân • Là nhị phân tìm kiếm • Tại nút: số nút nhánh trái nhánh phải chênh lệch ko nút! 感谢您下载包图网平台上提供的PPT作品,为了您和包图网以及原创作者的利益,请勿复制、传播、销售,否则将承担法律责任!包图网将对作品进行维权,按照传播下载次数进行十倍的索取赔偿! ibaotu.com P Cây bên trái KHOA CÔNG NGHỆ THÔNG TIN nL(p): số nút trái nút p nR(p): số nút phải nút p Cây bên phải 40 40 40 Các tác vụ xoay ▪ Quá trình cập nhật nhị phân tìm kiếm thường làm cân ▪ Thao tác: • Xoay trái RotateLeft • Xoay phải RotateRight 感谢您下载包图网平台上提供的PPT作品,为了您和包图网以及原创作者的利益,请勿复制、传播、销售,否则将承担法律责任!包图网将对作品进行维权,按照传播下载次数进行十倍的索取赔偿! ibaotu.com KHOA CƠNG NGHỆ THÔNG TIN 41 41 Các tác vụ xoay ▪ RotateLeft Xoay trái nút r r 感谢您下载包图网平台上提供的PPT作品,为了您和包图网以及原创作者的利益,请勿复制、传播、销售,否则将承担法律责任!包图网将对作品进行维权,按照传播下载次数进行十倍的索取赔偿! ibaotu.com Cây a Cây b Nút p trở thành nút gốc sau xoay p a b c Cây c KHOA CÔNG NGHỆ THÔNG TIN 42 42 Các tác vụ xoay ▪ RotateLeft p r 感谢您下载包图网平台上提供的PPT作品,为了您和包图网以及原创作者的利益,请勿复制、传播、销售,否则将承担法律责任!包图网将对作品进行维权,按照传播下载次数进行十倍的索取赔偿! ibaotu.com Sau xoay a b KHOA CÔNG NGHỆ THÔNG TIN r p c a c b 43 43 Các tác vụ xoay ▪ RotateRight r p 感谢您下载包图网平台上提供的PPT作品,为了您和包图网以及原创作者的利益,请勿复制、传播、销售,否则将承担法律责任!包图网将对作品进行维权,按照传播下载次数进行十倍的索取赔偿! ibaotu.com p a KHOA CÔNG NGHỆ THÔNG TIN c b Sau xoay phải r a b c 44 44 44 Cài đặt AVL ▪ Cài đặt dùng liên kết typedef struct node{ int info; int bf; //balance factor struct node *left, *right; } Node; 感谢您下载包图网平台上提供的PPT作品,为了您和包图网以及原创作者的利益,请勿复制、传播、销售,否则将承担法律责任!包图网将对作品进行维权,按照传播下载次数进行十倍的索取赔偿! ibaotu.com Node* ptree; KHOA CÔNG NGHỆ THÔNG TIN 45 45 45 Hiện thực nhị phân ▪ Cài đặt NP dùng liên kết Chứa thông tin nút class node { 感谢您下载包图网平台上提供的PPT作品,为了您和包图网以及原创作者的利益,请勿复制、传播、销售,否则将承担法律责任!包图网将对作品进行维权,按照传播下载次数进行十倍的索取赔偿! ibaotu.com DataType info; node left; node right; int bf; //balance factor } Trỏ đến nút trái Trỏ đến nút phải node KHOA CÔNG NGHỆ THÔNG TIN pTree; Trỏ nút gốc NP 46 46 46 BÀI TẬP Xét tác vụ insert remove để thêm nút xoá nút BST • Vẽ lại hình ảnh BST thêm nút vào theo thứ tự sau: 8, 3, 5, 2, 20, 11, 30, 9, 18, • Vẽ lại hình ảnh ta lần lược xoá nút 20 感谢您下载包图网平台上提供的PPT作品,为了您和包图网以及原创作者的利益,请勿复制、传播、销售,否则将承担法律责任!包图网将对作品进行维权,按照传播下载次数进行十倍的索取赔偿! ibaotu.com Cài đặt cấu trúc liệu liên kết cho BST, với thao tác: • Cài đặt thao tác xây dựng cây: Init, IsEmpty, CreateNode • Cài đặt thao tác cập nhật: Insert, Remove KHOA CÔNG NGHỆ THÔNG TIN 47 47 47 KHOA CÔNG NGHỆ THÔNG TIN ... khác – nút cha KHOA CÔNG NGHỆ THÔNG TIN 3 CẤU TRÚC CÂY TRONG THỰC TẾ ▪ Thơng thường mơ hình tổ chức có cấu trúc cây: • Một tổ chức khơng có thứ tự có cấu trúc phân tầng, tổ chức phòng ban thương... sort etc mail motd tmp users passwd Thao tác cấu trúc Nó phải ▪ truy cập vào nút gốc ▪ truy cập tất tổ tiên nút ▪ truy cập tất cháu nút ▪ thêm nút vào cây, ▪ xóa nút định khỏi ▪ Duyệt 感谢您下载包图网平台上提供的PPT作品,为了您和包图网以及原创作者的利益,请勿复制、传播、销售,否则将承担法律责任!包图网将对作品进行维权,按照传播下载次数进行十倍的索取赔偿!... ibaotu.com Tạo nút Duyệt Thêm trái Tìm kiếm Thêm phải KHOA CÔNG NGHỆ THÔNG TIN 10 Xóa 20 BT- Duyệt ▪ Duyệt cây: • Do cấu trúc khơng tuyến tính • cách duyệt NP ▪ ▪ ▪ Duyệt theo thứ tự trước PreOrder: