PureBasic:LinkedList
PureBasic:Manuel
<< Précédent | Sommaire | Suivant >>
[modifier] General
Les Listes Chainées (Linked Lists) regroupent des objets qui sont alloués dynamiquement en fonction de vos besoins. Elles se présentent sous la forme de listes d'éléments totalement indépendants les uns des autres. Vous pouvez y ajouter un nombre infini d'éléments, insérer des éléments à une position choisie, en effacer, etc... Cette méthode de stockage d'information est très pratique et très souple. C'est la meilleure solution pour gérer des données dont vous ne connaissez le nombre à l'avance.
[modifier] Sommaire des commandes
- AddElement()
- ChangeCurrentElement()
- ClearList()
- CountList()
- DeleteElement()
- FirstElement()
- InsertElement()
- LastElement()
- ListIndex()
- NextElement()
- PreviousElement()
- ResetList()
- SelectElement()
- SwapElements()
Exemple
;
; ------------------------------------------------------------
;
; PureBasic - Linked list example file
;
; (c) 2003 - Fantaisie Software
;
; ------------------------------------------------------------
;
Structure BasicStructure
Field1.b
Field2.w
Field3.l
EndStructure
Structure ComplexStructure
Field1.b
*Basic.BasicStructure ; Pointer to a BasicStructure object
Basic2.BasicStructure ; Creation of the BasicStructure object inside this structure
*Next.ComplexStructure ; Pointer to another ComplexStructure object
EndStructure
NewList TestList.BasicStructure()
;
;-------- Add Elements and TestLists --------
;
AddElement(TestList())
TestList()\Field2 = 1
AddElement(TestList())
TestList()\Field2 = 2
AddElement(TestList())
TestList()\Field2 = 3
AddElement(TestList())
TestList()\Field2 = 4
;
;-------- MessageRequester("Number of elements in the list:", Str(TestList()\Field2), 0) --------
;
MessageRequester("Number of elements in the list:", Str(CountList(TestList())), 0)
; First way to list all the elements
;
ResetList(TestList()) ; Reset the list index before the first element.
While NextElement(TestList()) ; Process all the elements...
MessageRequester("List elements :", "Field2 value : "+Str(TestList()\Field2), 0)
Wend
; Second way, with the help of ForEach
;
ForEach TestList() ; Process all the elements...
MessageRequester("List elements :", "Field2 value : "+Str(TestList()\Field2), 0)
Next
SelectElement(TestList(), 2) ; Go directly to the 3rd element
MessageRequester("3rd Element", "Field2 value : "+Str(TestList()\Field2), 0)
MessageRequester("Linked List - Example", "Finished", 0)
End
[modifier] OS supportés
Windows, AmigaOS, Linux, MacOS X

