Giáo trình Cấu trúc dữ liệu và giải thuật[bookbooming.com]

Page 134

Giaùo trình: Caáu Truùc Döõ Lieäu vaø Giaûi Thuaät Haøm DLL_Bubble_Sort coù prototype: void DLL_Bubble_Sort (DLLP_Type &DList); Haøm thöïc hieän vieäc saép xeáp thaønh phaàn döõ lieäu cuûa caùc nuùt trong danh saùch lieân keát ñoâi DList theo thöù töï taêng döïa treân thuaät toaùn saép xeáp noåi boït. Noäi dung cuûa haøm nhö sau: void DLL_Bubble_Sort (DLLP_Type &DList) { DLL_Type Inode = DList.DLL_First; if (Inode == NULL) return; while (Inode != DList.DLL_Last) { DLL_Type Jnode = DList.DLL_Last; while (Jnode != Inode) { if (Jnode->Key < Jnode->PreNode->Key) Swap (Jnode->Key, Jnode->PreNode->Key); Jnode = Jnode->PreNode; } Inode = Inode->NextNode; } return ; }

l. Sao cheùp moät danh saùch thaønh moät danh saùch môùi: Thao taùc naøy hoaøn toaøn töông töï nhö trong danh saùch lieân keát ñôn. - Thuaät toaùn: B1: DLL_Initialize(NewList) B2: CurNode = DLL_List.DLL_First B3: IF (CurNode = NULL) Thöïc hieän Bkt B4: DLL_Add_Last(NewList, CurNode->Key) B5: CurNode = CurNode->NextNode B6: Laëp laïi B3 Bkt: Keát thuùc - Caøi ñaët thuaät toaùn: Haøm DLL_Copy coù prototype: DLLP_Type DLL_Copy (DLLP_Type &DList, DLLP_Type &NewList); Haøm thöïc hieän vieäc sao cheùp noäi dung danh saùch DList thaønh danh saùch NewList coù cuøng noäi dung thaønh phaàn döõ lieäu theo thöù töï cuûa caùc nuùt treân DList. Haøm traû veà giaù trò cuûa danh saùch môùi neáu vieäc sao cheùp thaønh coâng, ngöôïc laïi haøm traû veà giaù trò khôûi taïo cuûa danh saùch. Noäi dung cuûa haøm nhö sau: DLLP_Type DLL_Copy (DLLP_Type &DList, DLLP_Type &NewList) { DLL_Initialize(NewList); DLL_Type CurNode = DList.DLL_First;

Trang: 134


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.