1. Trang chủ
  2. » Tất cả

Bai tap bài tập tuần 10 – cây b tree th tuan 10

3 1 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 3
Dung lượng 340,89 KB

Nội dung

Bài tập Tuần 10 – Cây B Tree Bài 1 Thêm một dãy các số nguyên 10, 20, 30, 40, 50, 60, 70, 80, 90 vào một cây B Tree rỗng Với t=3, t là bậc tối thiểu Bài 2 Hiện thực cây B Tree, với Cây B Tree được địn[.]

Bài tập Tuần 10 – Cây B-Tree Bài Thêm dãy số nguyên : 10, 20, 30, 40, 50, 60, 70, 80, 90 vào B-Tree rỗng Với t=3, t bậc tối thiểu Bài Hiện thực B-Tree, với Cây B-Tree định nghĩa sau: struct BTreeNode { int *keys; int t; BTreeNode **Child; int n; bool leaf; // // // // // Dãy Bậc tối Dãy Số khoá true khoá thiểu trỏ Child nút } // Tạo node B-Tree BTreeNode* CreateNode(int _t, bool _leaf) { BTreeNode* pCurr = new BTreeNode(); pCurr->t = _t; pCurr->leaf = _leaf; pCurr->keys = new int[2 * pCurr->t - 1]; pCurr->Child = new BTreeNode*[2 * pCurr->t]; pCurr->n = 0; return pCurr; } Viết hàm sau: a) Duyệt B-Tree: void BTree_Traverse(BTreeNode* root) b) Tìm khố k B-Tree: BTreeNode* BTree_Search(BTreeNode* root, int k) c) Thêm node có khố k vào B-Tree: void BTree_Insert(BTreeNode* root, int k) Hướng dẫn: Khi thêm nút vào B-Tree node bị đầy (node có số khố lớn 2t-1), phải tách node thành hai node Thủ tục Tách (split) node bị đầy: x x Bài – Đồ thị Thuật tốn Prims – Tìm khung nhỏ • Cho G = (V, E) đồ thị liên thông có trọng số gồm n đỉnh • Bước Chọn tuỳ ý đỉnh v ∈ V khởi tạo: Y = {v} T = Ø • Bước Trong số cạnh e = (V,W), v ∈ Y w ∈ V\Y, ta chọn cạnh có độ dài nhỏ • Bước Gán Y = Y ∪ {w} T = T ∪ {e} • Bước Nếu T đủ n-1 phần tử dừng, ngược lại làm tiếp bước • T khung nhỏ Cho đồ thị Hình 3.1 Hãy tìm khung nhỏ _MST Hình 3.1: Đồ thị G(V, E) có trọng số Hướng dẫn Các bước tìm khung MST theo thuật tốn Prims: Cho G(V, E): V=6, E=9 visited[] = {0, 0, 0, 0, 0, 0} PriorityQueue(Q) = {} push tất cạnh đỉnh ‘1’ vào hàng đợi Đỉnh ‘1’ visited _đã xét .visited[] = {1, 0, 0, 0, 0, 0} Q = {1 -> 3(4), -> 5(5)} Extract Min from Q, and go to that vertex Min = 4, ‘3’ node xét .push tất cạnh đỉnh ‘3’ vào Queue Đỉnh ‘3’ visited .visited[] = {1, 0, 1, 0, 0, 0} Q = {1->5(5), 3->2(3), 3->4(2), 3->5(3), 3->1(4)} Extract Min từ Q, tới đỉnh  Đỉnh ‘4’ Lặp lại bước đỉnh đồ thị G duyệt hết, ta khung nhỏ Hình 3.3 Hình 3.3: Cây khung nhỏ đồ thị G a) Cài đặt thuật tốn Prims để tìm khung nhỏ MST (Minimum Spaning Tree) ============================ *** ============================ ...x x B? ?i – Đồ th? ?? Thuật toán Prims – Tìm khung nhỏ • Cho G = (V, E) đồ th? ?? liên th? ?ng có trọng số gồm n đỉnh • B? ?ớc Chọn tuỳ ý đỉnh v ∈ V khởi tạo: Y = {v} T = Ø • B? ?ớc Trong số cạnh... đỉnh  Đỉnh ‘4’ Lặp lại b? ?ớc đỉnh đồ th? ?? G duyệt hết, ta khung nhỏ Hình 3.3 Hình 3.3: Cây khung nhỏ đồ th? ?? G a) Cài đặt thuật toán Prims để tìm khung nhỏ MST (Minimum Spaning Tree) ============================... có độ dài nhỏ • B? ?ớc Gán Y = Y ∪ {w} T = T ∪ {e} • B? ?ớc Nếu T đủ n-1 phần tử dừng, ngược lại làm tiếp b? ?ớc • T khung nhỏ Cho đồ th? ?? Hình 3.1 Hãy tìm khung nhỏ _MST Hình 3.1: Đồ th? ?? G(V, E) có

Ngày đăng: 25/03/2023, 07:20

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w