[Implemented] SortLinkedList()
Posted: Sun Mar 07, 2004 12:05 am
I am trying to code something that would sort a LinkedList structure, and I figured a command like this would be very handy:)
-Shopro
-Shopro
http://www.purebasic.com
https://www.purebasic.fr/english/
Code: Select all
;- Sort Linked List
;
Procedure Toppings_Sort()
Protected Sort_MaxElements.l
Protected Sort_NumberOfTimesSorted.l
Protected Sort_CurrentElement.l
Protected Sort_FirstElementToCompare.w, Sort_FirstElementToCompare45Pointer.l
Protected Sort_SecondElementToCompare.w, Sort_SecondElementToComparePointer.l
Protected Sort_SizeOfToppingStructure.l
Flag_ToppingsEdited = #True
Structure_Topping_Temp.Structure_Topping
Sort_SizeOfToppingStructure = SizeOf(Structure_Topping)
Sort_MaxElements = CountList(List_Structure_Topping())
For Sort_NumberOfTimesSorted = 0 To Sort_MaxElements
ResetList(List_Structure_Topping())
For Sort_CurrentElement = 1 To Sort_MaxElements - Sort_NumberOfTimesSorted - 1
NextElement(List_Structure_Topping())
Sort_FirstElementToCompare = Asc(UCase(Left(List_Structure_Topping()\Name$, 1)))
Sort_FirstElementToComparePointer = @List_Structure_Topping()
NextElement(List_Structure_Topping())
Sort_SecondElementToCompare = Asc(UCase(Left(List_Structure_Topping()\Name$, 1)))
Sort_SecondElementToComparePointer = @List_Structure_Topping()
If Sort_FirstElementToCompare > Sort_SecondElementToCompare
CopyMemory(Sort_FirstElementToComparePointer, @Structure_Topping_Temp, Sort_SizeOfToppingStructure)
CopyMemory(Sort_SecondElementToComparePointer, Sort_FirstElementToComparePointer, Sort_SizeOfToppingStructure)
CopyMemory(@Structure_Topping_Temp, Sort_SecondElementToComparePointer, Sort_SizeOfToppingStructure)
EndIf
PreviousElement(List_Structure_Topping())
Next
Next
EndProcedure
Code: Select all
ListViewGadget(1, 10,10,280,280,#LBS_SORT | #LBS_NOINTEGRALHEIGHT | #LBS_HASSTRINGS)
Kaeru Gaman wrote:it seems to be a case of RTFM....
RFTM <> RTFM!netmaestro wrote:For sure, it's definitely a case of Reorganize/Filter The Memory!