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

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