■ Principe de fonctionnement.
Un node peut contenir une ou plusieurs variables ainsi qu'une liste de nodes.
Chacun de ces nodes de la liste contiendra une liste de nodes.
Chacun de ces nodes de la liste contiendra une liste de nodes.
etc ...
Code : Tout sélectionner
Structure NewNode
Texte.s
List Nodes.NewNode()
EndStructure
Global NewList Nodes.NewNode()
Nous allons créer des types de véhicules (terrestres & marins). Pour chacun des types on va inséré des véhicules et sur un des véhicules nous allons insérer une motorisation.
Code : Tout sélectionner
Structure NewNode
Texte.s
List Nodes.NewNode()
EndStructure
Global NewList Nodes.NewNode()
Procedure AddNode(Texte.s,*Node.NewNode=0)
Protected Result
If *Node
Result = AddElement(*Node\Nodes())
*Node\Nodes()\Texte = Texte
Else
Result = AddElement(Nodes())
Nodes()\Texte = Texte
EndIf
ProcedureReturn Result
EndProcedure
Procedure ListNodes(List Nodes.NewNode())
Static pre.s = "="
ForEach Nodes()
Debug pre + "> " + Nodes()\Texte
ForEach Nodes()\Nodes()
pre + "="
ListNodes(Nodes()\Nodes())
Next
Next
pre = "="
EndProcedure
;// Test Zone
; Création de la hiérachie
Terrestre = AddNode("Véhicules terrestres")
AddNode("Trotinettes", Terrestre)
AddNode("Vélos", Terrestre)
Voitures = AddNode("Voitures", Terrestre)
AddNode("Electriques", Voitures)
AddNode("Thermiques ", Voitures)
Marins = AddNode("Véhicules marins")
AddNode("Barques", Marins)
AddNode("Voiliers", Marins)
AddNode("Paquebots", Marins)
; Visualisation du résultat
ListNodes(Nodes())
=> Véhicules terrestres
==> Trotinettes
==> Vélos
==> Voitures
===> Electriques
===> Thermiques
=> Véhicules marins
==> Barques
==> Voiliers
==> Paquebots