cs_amgab2003
Messages postés2Date d'inscriptiondimanche 4 septembre 2005StatutMembreDernière intervention 4 août 2010
-
1 juil. 2010 à 17:46
Mayzz
Messages postés2813Date d'inscriptionmardi 15 avril 2003StatutMembreDernière intervention 2 juin 2020
-
1 juil. 2010 à 18:58
Bonjour,
J'ai un problème d'arrangement à résoudre:
J"ai des objets (Strings ou autres objets) à arranger suivant toutes les combinaisons possibles : par exemples si mes objets sont A,B,C
mon programme doit générer la liste suivante:
ABC-ACB-BAC-BCA-CAB-CBA
Le nombre peut aller à quelques dizaines! soit 3628800 combinaisons par exemple pour 10 objets (factoriel 10)
J'ai eu l'idée d'utiliser un structure d'arbre comme illustré dans le screenshot ci dessous(illustré par le contrôle TreeView)
http://fr.tinypic.com/view.php?pic=f36p8i&s=6
J'ai deux question:
1) Est ce qu'il y a une meilleure méthode pour effectuer cette tache
2) J'utilise maintenant le contrôle TreeView mais ça ne me permet pas de stocker des objets quelconques et c'est lourd pour des long traitements. Est ce qu'il y a des classes prêtes qui permettent de stocker des arbres (n-aires)?
Mayzz
Messages postés2813Date d'inscriptionmardi 15 avril 2003StatutMembreDernière intervention 2 juin 202028 1 juil. 2010 à 18:58
1) Est ce qu'il y a une meilleure méthode pour effectuer cette tache
A part des boucles, perso je ne vois pas, peut être une formule mathématique basé sur la valeur octale des caractère ?
2) J'utilise maintenant le contrôle TreeView mais ça ne me permet pas de stocker des objets quelconques et c'est lourd pour des long traitements. Est ce qu'il y a des classes prêtes qui permettent de stocker des arbres (n-aires)?
Tu peux recréer des classes sérailisables reprenant le principe des nodes avec parent et enfant, du style :
Public Class NodesCollection
Inherits List(Of Node)
Private _Parent As Node
Sub New()
End Sub
Friend Sub New(ByVal parent As Node)
_Parent = Parent
End Sub
Protected Overloads Sub Add(ByVal item As Node)
item.Parent = _Parent
MyBase.Add(item)
End Sub
End Class
Public Class Node
Private _Value As String
Private _Parent As Node
Private _Childs As NodesCollection
Public Property Value() As String
Get
Return _Value
End Get
Set(ByVal value As String)
_Value = value
End Set
End Property
Public Property Parent() As Node
Get
Return _Parent
End Get
Set(ByVal value As Node)
_Parent = value
End Set
End Property
Public Property Childs() As NodesCollection
Get
Return _Childs
End Get
Set(ByVal value As NodesCollection)
_Childs = value
End Set
End Property
Friend Sub New(ByVal value As String, ByVal Parent As Node)
_Parent = Parent
_Value = value
_Childs = New NodesCollection(Me)
End Sub
Public Sub New(ByVal value As String)
_Value = value
_Childs = New NodesCollection(Me)
End Sub
End Class
Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.