Cấu Trúc Dữ Liệu Và Giải Thuật Chapter 5 Binarytree

76 103 0
Cấu Trúc Dữ Liệu Và Giải Thuật  Chapter 5  Binarytree

Đ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

Cấu Trúc Dữ Liệu Và Giải Thuật Chapter 5 Binarytree Tài Liệu Bao Gồm 6 Chapter Mong các bạn theo dõi đầy đủ để đạt kết quả cao . Để Cập Nhật Thêm Tìm Hiểu Hơn Nữa Về Tài Liệu IT Thì Các Bạn Có Thể Truy Cập : https:123doc.orgtrangcanhan4336953tailieuit.htm CẢM ƠN CÁC BẠN ĐÃ THEO DÕI

Chương Cấu trúc Mục tiêu Giới thiệu khái niệm cấu trúc Cấu trúc liệu nhị phân tìm kiếm: tổ chức, thuật tốn, ứng dụng Giới thiệu cấu trúc liệu nhị phân tìm kiếm Cấu trúc Cấu trúc Định nghĩa : tập hợp T phần tử (gọi nút cây), đó:  Một nút đặc biệt gọi gốc,  Các nút lại chia thành tập rời T1, T2 , , Tn theo quan hệ phân cấp Ti  Mỗi nút cấp i quản lý số nút cấp i+1 Quan hệ người ta gọi quan hệ cha-con Cấu trúc Cấu trúc Khái niệm  Bậc nút : số nút  Bậc : bậc lớn nút (số tối đa nút thuộc ) Cây có bậc n gọi n-phân  Nút gốc : nút nút cha  Nút : nút có bậc  Nút nhánh : nút có bậc khác khơng phải gốc  Mức nút :  Mức (gốc (T) ) =  Gọi T1, T2, T3, , Tn T0  Mức (T1) = Mức (T2) = = Mức (Tn) = Mức (T0) + Khái niệm  Độ dài đường từ gốc đến nút x : số nhánh cần qua kể từ gốc đến x  Độ dài đường tổng : PT  P XT X Px độ dài đường từ gốc đến X  Độ dài đường trung bình : PI = PT/n (n số nút T)  Rừng cây: tập hợp nhiều thứ tự quan trọng Khái niệm gốc J Cạnh nút Z B Q A R K D A F L Lá Ví dụ Sơ đồ tổ chức công ty BB-Electronic Corp R&D Tài vụ Kinh doanh Nội địa Quốc tế Châu âu Mỹ TV Sản xuất CD Các nước khác 10 Amplier Các thao tác 62 Các thao tác Việc hủy phần tử X khỏi phải bảo đảm điều kiện ràng buộc CNPTK Có trường hợp hủy nút X xảy ra:  X nút  X có (trái phải)  X có đủ 63 Các thao tác  Hủy phần tử có khóa x - Trường hợp 1: X nút  Xóa node  Gán liên kết từ cha 64 thành rỗng Các thao tác  Hủy phần tử có khóa x - Trường hợp 1: x nút  Ví dụ: hủy nút có giá trị x = 40 sau: 44 18 88 13 59 37 15 Chỉ đơn giản hủy x khơng móc nối đến phần tử khác 23 40 55 108 71 65 Các thao tác  Hủy phần tử có khóa x - Trường hợp 2: x có (trái phải) u  Gán liên kết từ cha xuống  Xóa nút u x v v 66 Các thao tác  Hủy phần tử có khóa x - Trường hợp 1: x nút  Ví dụ: hủy nút có giá trị x = 37 cây: 44 18 13 88 59 37 15 23 55 67 108 71 Các thao tác  Hủy phần tử có khóa x - Trường hợp 3: x có đủ Nhận xét:  Không thể hủy trực tiếp x có đủ  Hủy gián tiếp: • Thay hủy x, ta tìm phần tử thay y Phần tử có tối đa • Thơng tin lưu y chuyển lên lưu x • Sau đó, nút bị hủy thật Y giống trường hợp đầu  Vấn đề: chọn Y cho lưu Y vào vị trí X, CNPTK.68 Các thao tác Có phần tử thỏa mãn yêu cầu:  Phần tử nhỏ (trái nhất) phải  Phần tử lớn (phải nhất) trái Việc chọn lựa phần tử phần tử thay mạng hoàn tồn phụ thuộc vào ý thích người lập trình Ở đây, ta chọn phần tử trái phải làm phân tử thay 69 Các thao tác  Hủy phần tử có khóa x - Trường hợp 3: x có đủ  Tìm w nút trước nút x phép duyệt inorder (chính nút cực phải bên trái x)  Thay x w  Xóa node w cũ (giống trường70hợp xét) Các thao tác Ví dụ: Khi hủy phần tử x = 18 khỏi cây, phần tử 23 phần tử thay thế: 44 T/h 3: hủy x=18 18 88 13 59 37 15 23 40 71 30 55 108 71 Các thao tác Cài đặt:  Hàm DelNode trả giá trị 1, hủy thành cơng khơng có X cây: int DelNode(TREE &root, Data X)  Hàm FindReplNode tìm phần tử mạng cho nút p void FindReplNode (TREE &p, TREE &q) 72 Các thao tác int DelNode(TREE &root, DataType X){ if(root== NULL) return 0; if(root->data > x) return DelNode(root->left, X); if (root->data < x) return DelNode(root->right, X); Node* p = root; if(root->left == NULL) root = root->right; else if(root->right == NULL) root = root->left; else // T có đủ FindReplNode (p, root->right); delete p; 73 } Các thao tác void FindReplNode(Tree &p, Tree &q){ if(q->left) FindReplNode(p, q->left); else { p->data = q->data; p = q; q = q->right; } } 74 Các thao tác Hủy cây: Việc toàn thực thơng qua thao tác duyệt theo thứ tự sau: Hủy trái Hủy phải Hủy nút gốc void removeTree(TREE &root){ if(root){ removeTree(root->reft); removeTree(root->right); delete(root); } } 75 Các thao tác Nhận xét:  Tất thao tác SearchNode, InsertNode, DelNode có độ phức tạp trung bình O(h), với h chiều cao  Trường hợp tốt nhất, CNPTK có n nút có độ cao h = log2(n) Chi phí tìm kiếm tương đương tìm kiếm nhị phân mảng có thứ tự  Trường hợp xấu nhất, bị suy biến thành danh sách liên kết (các nút có trừ nút lá) Các thao tác có độ phức tạp O(n) 76 ...Mục tiêu Giới thiệu khái niệm cấu trúc Cấu trúc liệu nhị phân tìm kiếm: tổ chức, thuật toán, ứng dụng Giới thiệu cấu trúc liệu nhị phân tìm kiếm Cấu trúc Cấu trúc Định nghĩa : tập hợp T phần... địa Quốc tế Châu âu Mỹ TV Sản xuất CD Các nước khác 10 Amplier Cấu trúc Nhận xét:  Trong cấu trúc khơng tồn chu trình  Tổ chức cấu trúc cho phép truy cập nhanh đến phần tử 11 Cây nhị phân Cây... hệ phân cấp Ti  Mỗi nút cấp i quản lý số nút cấp i+1 Quan hệ người ta gọi quan hệ cha-con Cấu trúc Cấu trúc Khái niệm  Bậc nút : số nút  Bậc : bậc lớn nút (số tối đa nút thuộc ) Cây có bậc n

Ngày đăng: 11/04/2019, 17:44

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

  • Đang cập nhật ...

Tài liệu liên quan