Tìm hiểu tầm quan trọng của cấu trúc dữ liệu và giải thụât trong một đề án tin học phần 8
Số trang: 23
Loại file: pdf
Dung lượng: 277.50 KB
Lượt xem: 9
Lượt tải: 0
Xem trước 3 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Cài đặt thuật toán: Hàm BinT_Num_Node có prototype: int BinT_Num_Node(BinT_Type BTree); Hàm tính số nút của cây BTree theo thuật toán đệ quy
Nội dung trích xuất từ tài liệu:
Tìm hiểu tầm quan trọng của cấu trúc dữ liệu và giải thụât trong một đề án tin học phần 8 Giaùo trình: Caáu Truùc Döõ Lieäu vaø Giaûi Thuaät - Thuaät toaùn: B1: IF (BinTree = NULL) B1.1: NN = 0 B1.2: Thöïc hieän Bkt B2: NNL = NN(BinTree->BinT_Left) B3: NNR = NN(BinTree->BinT_Right) B4: NN = NNL + NNR + 1 Bkt: Keát thuùc Ví duï: Soá nuùt cuûa caây nhò phaân sau baèng 8. BinTree 40 36 55 12 18 45 21 NULL NULL NULL NULL NULL 8 NULL NULL 0 0 0 0 0 0 0 1(0+0+1) 1 (0+0+1) NULL NULL 1 (0+0+1) 3 (1+1+1) 0 0 1 (0+0+1) 2 (0+1+1) 4 (2+1+1) 8 (3+4+1) - Caøi ñaët thuaät toaùn: Haøm BinT_Num_Node coù prototype: int BinT_Num_Node(BinT_Type BTree); Haøm tính soá nuùt cuûa caây BTree theo thuaät toaùn ñeä quy. Haøm traû veà soá nuùt cuûa caây caàn tính. int BinT_Num_Node(BinT_Type BTree) { if (BTree == NULL) return (0); int NNL = BinT_Num_Node(BTree->BinT_Left); int NNR = BinT_Num_Node(BTree->BinT_Right); return (NNL + NNR + 1); }g. Huûy moät nuùt treân caây nhò phaân: Vieäc huûy moät nuùt trong caây coù theå laøm cho caây trôû thaønh röøng. Do vaäy trong thao taùc naøy neáu chuùng ta tieán haønh huûy moät nuùt laù thì khoâng coù ñieàu gì xaûy ra, song neáu huûy Trang: 162 Giaùo trình: Caáu Truùc Döõ Lieäu vaø Giaûi Thuaät nuùt khoâng phaûi laø nuùt laù thì chuùng ta phaûi tìm caùch chuyeån caùc nuùt goác caây con laø caùc nuùt con cuûa nuùt caàn huûy thaønh caùc nuùt goác caây con cuûa caùc nuùt khaùc roài môùi tieán haønh huûy nuùt naøy. - Tröôøng hôïp neáu nuùt caàn huûy chæ coù 01 nuùt goác caây con thì chuùng ta coù theå chuyeån nuùt goác caây con naøy thaønh nuùt goác caây con cuûa nuùt cha cuûa nuùt caàn huûy. - Tröôøng hôïp neáu nuùt caàn huûy coù 2 nuùt goác caây con thì chuùng ta phaûi chuyeån 02 nuùt goác caây con naøy thaønh nuùt goác caây con cuûa caùc nuùt khaùc vôùi nuùt caàn huûy. Vieäc choïn caùc nuùt ñeå laøm nhieäm vuï nuùt cha cuûa caùc nuùt goác caây con naøy tuøy vaøo töøng tröôøng hôïp cuï theå cuûa caây nhò phaân maø chuùng ta seõ löïa choïn cho phuø hôïp. Do vaäy, thao taùc huûy moät nuùt seõ ñöôïc trình baøy cuï theå trong caùc loaïi caây cuï theå ñöôïc trình baøy ôû caùc phaàn sau.5.2.3. Caây nhò phaân tìm kieám (Binary Searching Tree)A. Khaùi nieäm – Caáu truùc döõ lieäu:Caây nhò phaân tìm kieám laø caây nhò phaân coù thaønh phaàn khoùa cuûa moïi nuùt lôùn hôn thaønhphaàn khoùa cuûa taát caû caùc nuùt trong caây con traùi cuûa noù vaø nhoû hôn thaønh phaàn khoùacuûa taát caû caùc nuùt trong caây con phaûi cuûa noù.Ví duï: Hình aûnh sau laø hình aûnh cuûa moät caây nhò phaân tìm kieám BSTree 60 25 65 19 40 NULL NULL 10 NULL 30 44 NULL NULL NULL NULL 50 15 NULL NULL NULL NULLTöø khaùi nieäm naøy chuùng ta coù moät soá nhaän xeùt:- Caáu truùc döõ lieäu cuûa caây nhò phaân tìm kieám laø caáu truùc döõ lieäu ñeå bieåu dieãn caùc caây nhò phaân noùi chung.typedef struct BST_Node { T Key; BST_Node * BST_Left; // Vuøng lieân keát quaûn lyù ñòa chæ nuùt goác caây con traùi BST_Node * BST_Right; // Vuøng lieân keát quaûn lyù ñòa chæ nuùt goác caây con phaûi BST_OneNode; } Trang: 163 Giaùo trình: Caáu Truùc Döõ Lieäu vaø Giaûi Thuaättypedef BST_OneNode * BST_Type;Ñeå quaûn lyù caùc caây nhò phaân tìm kieám chuùng ta caàn quaûn lyù ñòa chæ nuùt goá ...
Nội dung trích xuất từ tài liệu:
Tìm hiểu tầm quan trọng của cấu trúc dữ liệu và giải thụât trong một đề án tin học phần 8 Giaùo trình: Caáu Truùc Döõ Lieäu vaø Giaûi Thuaät - Thuaät toaùn: B1: IF (BinTree = NULL) B1.1: NN = 0 B1.2: Thöïc hieän Bkt B2: NNL = NN(BinTree->BinT_Left) B3: NNR = NN(BinTree->BinT_Right) B4: NN = NNL + NNR + 1 Bkt: Keát thuùc Ví duï: Soá nuùt cuûa caây nhò phaân sau baèng 8. BinTree 40 36 55 12 18 45 21 NULL NULL NULL NULL NULL 8 NULL NULL 0 0 0 0 0 0 0 1(0+0+1) 1 (0+0+1) NULL NULL 1 (0+0+1) 3 (1+1+1) 0 0 1 (0+0+1) 2 (0+1+1) 4 (2+1+1) 8 (3+4+1) - Caøi ñaët thuaät toaùn: Haøm BinT_Num_Node coù prototype: int BinT_Num_Node(BinT_Type BTree); Haøm tính soá nuùt cuûa caây BTree theo thuaät toaùn ñeä quy. Haøm traû veà soá nuùt cuûa caây caàn tính. int BinT_Num_Node(BinT_Type BTree) { if (BTree == NULL) return (0); int NNL = BinT_Num_Node(BTree->BinT_Left); int NNR = BinT_Num_Node(BTree->BinT_Right); return (NNL + NNR + 1); }g. Huûy moät nuùt treân caây nhò phaân: Vieäc huûy moät nuùt trong caây coù theå laøm cho caây trôû thaønh röøng. Do vaäy trong thao taùc naøy neáu chuùng ta tieán haønh huûy moät nuùt laù thì khoâng coù ñieàu gì xaûy ra, song neáu huûy Trang: 162 Giaùo trình: Caáu Truùc Döõ Lieäu vaø Giaûi Thuaät nuùt khoâng phaûi laø nuùt laù thì chuùng ta phaûi tìm caùch chuyeån caùc nuùt goác caây con laø caùc nuùt con cuûa nuùt caàn huûy thaønh caùc nuùt goác caây con cuûa caùc nuùt khaùc roài môùi tieán haønh huûy nuùt naøy. - Tröôøng hôïp neáu nuùt caàn huûy chæ coù 01 nuùt goác caây con thì chuùng ta coù theå chuyeån nuùt goác caây con naøy thaønh nuùt goác caây con cuûa nuùt cha cuûa nuùt caàn huûy. - Tröôøng hôïp neáu nuùt caàn huûy coù 2 nuùt goác caây con thì chuùng ta phaûi chuyeån 02 nuùt goác caây con naøy thaønh nuùt goác caây con cuûa caùc nuùt khaùc vôùi nuùt caàn huûy. Vieäc choïn caùc nuùt ñeå laøm nhieäm vuï nuùt cha cuûa caùc nuùt goác caây con naøy tuøy vaøo töøng tröôøng hôïp cuï theå cuûa caây nhò phaân maø chuùng ta seõ löïa choïn cho phuø hôïp. Do vaäy, thao taùc huûy moät nuùt seõ ñöôïc trình baøy cuï theå trong caùc loaïi caây cuï theå ñöôïc trình baøy ôû caùc phaàn sau.5.2.3. Caây nhò phaân tìm kieám (Binary Searching Tree)A. Khaùi nieäm – Caáu truùc döõ lieäu:Caây nhò phaân tìm kieám laø caây nhò phaân coù thaønh phaàn khoùa cuûa moïi nuùt lôùn hôn thaønhphaàn khoùa cuûa taát caû caùc nuùt trong caây con traùi cuûa noù vaø nhoû hôn thaønh phaàn khoùacuûa taát caû caùc nuùt trong caây con phaûi cuûa noù.Ví duï: Hình aûnh sau laø hình aûnh cuûa moät caây nhò phaân tìm kieám BSTree 60 25 65 19 40 NULL NULL 10 NULL 30 44 NULL NULL NULL NULL 50 15 NULL NULL NULL NULLTöø khaùi nieäm naøy chuùng ta coù moät soá nhaän xeùt:- Caáu truùc döõ lieäu cuûa caây nhò phaân tìm kieám laø caáu truùc döõ lieäu ñeå bieåu dieãn caùc caây nhò phaân noùi chung.typedef struct BST_Node { T Key; BST_Node * BST_Left; // Vuøng lieân keát quaûn lyù ñòa chæ nuùt goác caây con traùi BST_Node * BST_Right; // Vuøng lieân keát quaûn lyù ñòa chæ nuùt goác caây con phaûi BST_OneNode; } Trang: 163 Giaùo trình: Caáu Truùc Döõ Lieäu vaø Giaûi Thuaättypedef BST_OneNode * BST_Type;Ñeå quaûn lyù caùc caây nhò phaân tìm kieám chuùng ta caàn quaûn lyù ñòa chæ nuùt goá ...
Tìm kiếm theo từ khóa liên quan:
tài liệu window thủ thuật window kĩ năng lập trình bí quyết lập trình thủ thuật tin họcGợi ý tài liệu liên quan:
-
Cách phân tích thiết kế hệ thống thông tin quan trọng phần 4
13 trang 204 0 0 -
Bài giảng điện tử môn tin học: Quản trị các hệ thống thông tin quản lý xuyên quốc gia
27 trang 201 0 0 -
Sửa lỗi các chức năng quan trọng của Win với ReEnable 2.0 Portable Edition
5 trang 198 0 0 -
Các phương pháp nâng cấp cho Windows Explorer trong Windows
5 trang 184 0 0 -
Tổng quan về ngôn ngữ lập trình C part 1
64 trang 183 0 0 -
bảo mật mạng các phương thức giả mạo địa chỉ IP fake IP
13 trang 155 0 0 -
Thủ thuật với bàn phím trong Windows
3 trang 154 0 0 -
TÀI LIỆU HƯỚNG DẪN SỬ DỤNG PHẦN MỀM KHAI BÁO HẢI QUAN ĐIỆN TỬ phần 1
18 trang 139 0 0 -
information technology outsourcing transactions process strategies and contracts 2nd ed phần 3
65 trang 104 0 0 -
3 nguyên tắc vàng để luôn an toàn khi duyệt web
8 trang 73 0 0