Giáo trình phân tích quy trình sử dụng hàm Input new data để tách một list thành nhiều danh sách p3
lượt xem 3
download
Tham khảo tài liệu 'giáo trình phân tích quy trình sử dụng hàm input new data để tách một list thành nhiều danh sách p3', công nghệ thông tin, kỹ thuật lập trình phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Giáo trình phân tích quy trình sử dụng 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 phân tích quy trình ứng dụng một số sự cố về phần cứng và phần mềm trong Event Viewer p6
5 p | 70 | 6
-
Giáo trình phân tích quy trình ứng dụng một số sự cố về phần cứng và phần mềm trong Event Viewer p7
5 p | 78 | 5
-
Giáo trình phân tích quy trình ghost phân vùng hệ thống thành tập tin khi sử dụng partition magic p1
5 p | 63 | 3
-
Giáo trình phân tích quy trình ghost phân vùng hệ thống thành tập tin khi sử dụng partition magic p2
5 p | 74 | 3
-
Giáo trình phân tích quy trình ghost phân vùng hệ thống thành tập tin khi sử dụng partition magic p5
5 p | 56 | 3
-
Giáo trình phân tích quy trình ứng dụng một số sự cố về phần cứng và phần mềm trong Event Viewer p3
5 p | 59 | 3
-
Giáo trình phân tích quy trình tạo partition mới trên ổ đĩa bằng phần mềm partition magic p9
5 p | 64 | 3
-
Giáo trình phân tích quy trình tạo partition mới trên ổ đĩa bằng phần mềm partition magic p8
5 p | 69 | 3
-
Giáo trình phân tích quy trình tạo partition mới trên ổ đĩa bằng phần mềm partition magic p4
5 p | 69 | 3
-
Giáo trình phân tích quy trình tạo partition mới trên ổ đĩa bằng phần mềm partition magic p3
5 p | 64 | 3
-
Giáo trình phân tích quy trình ghost phân vùng hệ thống thành tập tin khi sử dụng partition magic p3
5 p | 65 | 3
-
Giáo trình phân tích quy trình ứng dụng một số sự cố về phần cứng và phần mềm trong Event Viewer p4
5 p | 70 | 2
-
Giáo trình phân tích quy trình tạo partition mới trên ổ đĩa bằng phần mềm partition magic p1
5 p | 87 | 2
-
Giáo trình phân tích quy trình tạo partition mới trên ổ đĩa bằng phần mềm partition magic p10
5 p | 60 | 2
-
Giáo trình phân tích quy trình tạo partition mới trên ổ đĩa bằng phần mềm partition magic p7
5 p | 74 | 2
-
Giáo trình phân tích quy trình tạo partition mới trên ổ đĩa bằng phần mềm partition magic p6
5 p | 78 | 2
-
Giáo trình phân tích quy trình tạo partition mới trên ổ đĩa bằng phần mềm partition magic p5
5 p | 73 | 2
-
Giáo trình phân tích quy trình ứng dụng một số sự cố về phần cứng và phần mềm trong Event Viewer p8
4 p | 67 | 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