Giáo trình hướng dẫn phân tích hàm Input new data để tách một list thành nhiều danh sách p3
lượt xem 4
download
Trong thao tác này chỉ đơn giản là chúng ta cho giá trị các con trỏ quản lý địa chỉ hai nút đầu và cuối danh sách liên kết đôi về con trỏ NULL. Hàm khởi tạo danh sách liên kết đôi như sau: DLLP_Type DLL_Initialize(DLLP_Type &DList) { DList.DLL_First = NULL; DList.DLL_Last = NULL; return (DList); } Hình ảnh minh họa: DList NULL DLL_First DLL_Last NULL
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Giáo trình hướng dẫn phân tích hàm Input new data để tách một list thành nhiều danh sách p3
- h a n g e Vi h a n g e Vi XC XC e e F- F- w w PD PD er er ! ! W W O O N N . y y bu bu to to Giaùo trình: Caáu Truùc Döõ Lieäu vaø Giaûi Thuaät k k lic lic C C w w m m w w w w o o .c .c .d o .d o c u -tr a c k c u -tr a c k a. Khôûi taïo danh saùch (Initialize): Trong thao taùc naøy chæ ñôn giaûn laø chuùng ta cho giaù trò caùc con troû quaûn lyù ñòa chæ hai nuùt ñaàu vaø cuoái danh saùch lieân keát ñoâi veà con troû NULL. Haøm khôûi taïo danh saùch lieân keát ñoâi nhö sau: DLLP_Type DLL_Initialize(DLLP_Type &DList) { DList.DLL_First = NULL; DList.DLL_Last = NULL; return (DList); } Hình aûnh minh hoïa: DList NULL DLL_First DLL_Last NULL b. Taïo môùi moät phaàn töû / nuùt: Giaû söû chuùng ta caàn taïo môùi moät phaàn töû coù thaønh phaàn döõ lieäu laø NewData. - Thuaät toaùn: B1: DNode = new DLL_OneNode B2: IF (DNode = NULL) Thöïc hieän Bkt B3: DNode->NextNode = NULL B4: DNode->PreNode = NULL B5: DNode->Key = NewData Bkt: Keát thuùc - Caøi ñaët thuaät toaùn: Haøm DLL_Create_Node coù prototype: DLL_Type DLL_Create_Node(T NewData); Haøm taïo môùi moät nuùt coù thaønh phaàn döõ lieäu laø NewData, haøm traû veà con troû troû tôùi ñòa chæ cuûa nuùt môùi taïo. Neáu khoâng ñuû boä nhôù ñeå taïo, haøm traû veà con troû NULL. DLL_Type DLL_Create_Node(T NewData) { DLL_Type Pnode = new DLL_OneNode; if (Pnode != NULL) { Pnode->NextNode = NULL; Pnode->PreNode = NULL; Pnode->Key = NewData; } return (Pnode); } - Minh hoïa thuaät toaùn: Giaû söû chuùng ta caàn taïo nuùt coù thaønh phaàn döõ lieäu laø 20: NewData = 20 Trang: 113
- h a n g e Vi h a n g e Vi XC XC e e F- F- w w PD PD er er ! ! W W O O N N . y y bu bu to to Giaùo trình: Caáu Truùc Döõ Lieäu vaø Giaûi Thuaät k k lic lic C C w w m m w w w w o o .c .c .d o .d o Pnode = new DLL_OneNode c u -tr a c k c u -tr a c k Pnode Pnode->NextNode = NULL Pnode->PreNode = NULL Pnode->Key = NewData Pnode NULL 20 NULL c. Theâm moät phaàn töû vaøo trong danh saùch: Giaû söû chuùng ta caàn theâm moät phaàn töû coù giaù trò thaønh phaàn döõ lieäu laø NewData vaøo trong danh saùch. Vieäc theâm coù theå dieãn ra ôû ñaàu, cuoái hay ôû giöõa danh saùch lieân keát. Do vaäy, ôû ñaây chuùng ta trình baøy 3 thao taùc theâm rieâng bieät nhau: - Thuaät toaùn theâm phaàn töû vaøo ñaàu danh saùch lieân keát ñoâi: B1: NewNode = DLL_Create_Node (NewData) B2: IF (NewNode = NULL) Thöïc hieän Bkt B3: IF (DLL_List.DLL_First = NULL) // Danh saùch roãng B3.1: DLL_List.DLL_First = NewNode B3.2: DLL_List.DLL_Last = NewNode B3.3: Thöïc hieän Bkt B4: NewNode->NextNode = DLL_List.DLL_First // Noái DLL_First vaøo B5: DLL_List.DLL_First->PreNode = NewNode // sau NewNode // Chuyeån vai troø ñöùng ñaàu cuûa NewNode cho DLL_First B6: DLL_List.DLL_First = NewNode Bkt: Keát thuùc - Minh hoïa thuaät toaùn: Giaû söû chuùng ta caàn theâm nuùt coù thaønh phaàn döõ lieäu laø 27: NewData = 27 NewNode NULL 27 NULL DLL_List DLL_First DLL_Last NULL 16 20 18 40 30 NULL NewNode->NextNode = DLL_List.DLL_First: Trang: 114
- h a n g e Vi h a n g e Vi XC XC e e F- F- w w PD PD er er ! ! W W O O N N . y y bu bu to to Giaùo trình: Caáu Truùc Döõ Lieäu vaø Giaûi Thuaät k k lic lic C C w w m m w w w w o o .c .c .d o .d o c u -tr a c k c u -tr a c k NewNode 27 NULL DLL_List DLL_First DLL_Last NULL 16 20 18 40 30 NULL DLL_List.DLL_First->PreNode = NewNode: NewNode 27 NULL DLL_List DLL_First DLL_Last NULL 16 20 18 40 30 DLL_List.DLL_First = NewNode: NewNode 27 NULL DLL_List DLL_First DLL_Last NULL 16 20 18 40 30 Keát quaû sau khi cheøn: DLL_List DLL_First DLL_Last NULL 27 16 20 18 40 30 NULL - Thuaät toaùn theâm phaàn töû vaøo cuoái danh saùch lieân keát ñoâi: B1: NewNode = DLL_Create_Node (NewData) B2: IF (NewNode = NULL) Thöïc hieän Bkt B3: IF (DLL_List.DLL_First = NULL) // Danh saùch roãng Trang: 115
- h a n g e Vi h a n g e Vi XC XC e e F- F- w w PD PD er er ! ! W W O O N N . y y bu bu to to Giaùo trình: Caáu Truùc Döõ Lieäu vaø Giaûi Thuaät k k lic lic C C w w m m w w w w o o .c .c .d o .d o B3.1: DLL_List.DLL_First = NewNode c u -tr a c k c u -tr a c k B3.2: DLL_List.DLL_Last = NewNode B3.3: Thöïc hieän Bkt B4: DLL_List.DLL_Last->NextNode = NewNode // Noái NewNode vaøo B5: NewNode->PreNode = DLL_List.DLL_Last // sau DLL_Last // Chuyeån vai troø ñöùng cuoái cuûa NewNode cho DLL_Last B6: DLL_List.DLL_Last = NewNode Bkt: Keát thuùc - Minh hoïa thuaät toaùn: Giaû söû chuùng ta caàn theâm nuùt coù thaønh phaàn döõ lieäu laø 25: NewData = 25 NewNode NULL 25 NULL DLL_List DLL_First DLL_Last NULL 16 20 18 40 30 NULL DLL_List.DLL_Last->NextNode = NewNode: NewNode NULL 25 NULL DLL_List DLL_First DLL_Last 16 20 18 40 30 NULL NewNode->PreNode = DLL_List.DLL_Last NewNode NULL 25 DLL_List DLL_First DLL_Last 16 20 18 40 30 NULL Trang: 116
- h a n g e Vi h a n g e Vi XC XC e e F- F- w w PD PD er er ! ! W W O O N N . y y bu bu to to Giaùo trình: Caáu Truùc Döõ Lieäu vaø Giaûi Thuaät k k lic lic C C w w m m w w w w o o .c .c .d o .d o c u -tr a c k c u -tr a c k DLL_List.DLL_Last = NewNode: NewNode NULL 25 DLL_List DLL_First DLL_Last 16 20 18 40 30 NULL Keát quaû sau khi cheøn: DLL_List DLL_First DLL_Last NULL 16 20 18 40 30 25 NULL - Thuaät toaùn theâm phaàn töû vaøo giöõa danh saùch lieân keát ñoâi: Giaû söû chuùng ta caàn theâm moät phaàn töû coù giaù trò thaønh phaàn döõ lieäu laø NewData vaøo trong danh saùch DLL_List vaøo ngay sau nuùt coù ñòa chæ InsNode. Trong thöïc teá nhieàu khi chuùng ta phaûi thöïc hieän thao taùc tìm kieám ñeå xaùc ñònh ñòa chæ InsNode, ôû ñaây giaû söû chuùng ta ñaõ xaùc ñònh ñöôïc ñòa chæ naøy. B1: IF (InsNode->NextNode = NULL) // Theâm vaøo cuoái DSLK B1.1: DLL_Add_Last (DLL_List, NewData) B1.2: Thöïc hieän Bkt B2: NewNode = DLL_Create_Node (NewData) B3: IF (NewNode = NULL) Thöïc hieän Bkt // Noái caùc nuùt keá sau InsNode vaøo sau NewNode B4: NewNode->NextNode = InsNode->NextNode B5: InsNode->NextNode->PreNode = NewNode // Chuyeån moái lieân keát giöõa InsNode vôùi nuùt keá cuûa noù veà NewNode B6: InsNode->NextNode = NewNode B7: NewNode->PreNode = InsNode Bkt: Keát thuùc - Minh hoïa thuaät toaùn: Giaû söû chuùng ta caàn theâm nuùt coù thaønh phaàn döõ lieäu laø 25 vaøo sau nuùt coù ñòa chæ InsNode nhö sau: NewData = 25 Trang: 117
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Giáo trình hướng dẫn phân tích các bước để tạo một select query với thiết lập các thuộc tính total và crosstab p1
5 p | 167 | 17
-
Giáo trình hướng dẫn phân tích lãi suất và giá trị của tiền tệ theo thời gian tích lũy p3
5 p | 105 | 10
-
Giáo trình hướng dẫn phân tích lãi suất và giá trị của tiền tệ theo thời gian tích lũy p9
5 p | 99 | 8
-
Giáo trình hướng dẫn phân tích cấu tạo mô hình quản lý mạng phân phối xử lý dữ liệu p6
11 p | 84 | 8
-
Giáo trình hướng dẫn phân tích cấu tạo mô hình quản lý mạng phân phối xử lý dữ liệu p4
11 p | 94 | 6
-
Giáo trình hướng dẫn phân tích ứng dụng phương thức gán đối tượng cho một giao diện đối lập trừu tượng p8
5 p | 87 | 5
-
Giáo trình hướng dẫn phân tích cấu tạo mô hình quản lý mạng phân phối xử lý dữ liệu p7
11 p | 76 | 4
-
Giáo trình hướng dẫn phân tích cấu tạo mô hình quản lý mạng phân phối xử lý dữ liệu p3
11 p | 80 | 4
-
Giáo trình hướng dẫn phân tích cấu tạo mô hình quản lý mạng phân phối xử lý dữ liệu p2
11 p | 88 | 4
-
Giáo trình hướng dẫn phân tích cấu tạo mô hình quản lý mạng phân phối xử lý dữ liệu p1
11 p | 90 | 4
-
Giáo trình hướng dẫn phân tích khả năng chống phân mảnh dung lượng ổ cứng bằng Clean system p3
5 p | 86 | 3
-
Giáo trình hướng dẫn phân tích cấu tạo mô hình quản lý mạng phân phối xử lý dữ liệu p10
11 p | 71 | 3
-
Giáo trình hướng dẫn phân tích cấu tạo mô hình quản lý mạng phân phối xử lý dữ liệu p9
11 p | 63 | 3
-
Giáo trình hướng dẫn phân tích cấu tạo mô hình quản lý mạng phân phối xử lý dữ liệu p8
11 p | 75 | 3
-
Giáo trình hướng dẫn phân tích khả năng chống phân mảnh dung lượng ổ cứng bằng Clean system p1
5 p | 75 | 2
-
Giáo trình hướng dẫn phân tích khả năng chống phân mảnh dung lượng ổ cứng bằng Clean system p2
5 p | 67 | 2
-
Giáo trình hướng dẫn phân tích khả năng chống phân mảnh dung lượng ổ cứng bằng Clean system p5
5 p | 64 | 2
-
Giáo trình hướng dẫn phân tích khả năng chống phân mảnh dung lượng ổ cứng bằng Clean system p6
5 p | 90 | 2
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn