hello,
j aimerais avoir votre avis sur la structure de données que vous implementeriez pour representer un arbre en c#.
Specialement les collections utilisées.
merci d avance.
hello,
j aimerais avoir votre avis sur la structure de données que vous implementeriez pour representer un arbre en c#.
Specialement les collections utilisées.
merci d avance.
salut
j'utiliserai bien les List<>.. pour faire cela
en créant une classe genre :
public class toto : list<toto>
et voila
The Monz, Toulouse
Moi je me suis crée un IEnumerable pour garder tous les noeuds de ma tree, comme ça:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 /// <summary> /// Interface that provide a list of selected INodes. /// </summary> public interface INodeSelectionProvider { /// <summary> /// Gets the list of Selected INodes. /// </summary> IEnumerable<INode> SelectedNodes { get; } }
Un XmlDocument ou un objet au fonctionnement similaire semble approprié pour stocker un arbre (c'est vrai qu'il y a pas mal de propriétés / méthodes inutiles pour le stockage d'un arbre dans XmlDocument mais c'est une bonne base d'inspiration pour la création d'un arbre).
Il est clair que le XmlDocument est tout indiqué si tu ne veux pas te prendre la tête, mais ça risque de poser problème si t'a beaucoup de données.
Si t'a juste besoin de stocker un arbre sans vraiment faire de traitements dessus, tu dois faire une classe "noeud" avec quelques notions :
- un noeud parent (si null = racine)
- des enfants (une List<noeud>)
Si tu dois faire de la recherche dans ton arbre, le mieux reste le Xml, avec le XPath comme langage de requête.
salut
je ne suis pas trop d'accord par rapport à l'utilisation d'XML
Si on parle de performance, un arbre classique avec un noeud representé
par son pere et ses enfants me semble pas mal...
Moi je ferais surement un truc du genre :
Apres, XML s'est quand meme long...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 public class Noeud : List<Noeud> { public Noeud Papa; // :) }
Tout depend de l'usage de ton arbre. moi je te parle d'un arbre plutot adapté
pour un graphe de scène (arborescence classique d'un moteur graphique)
voila
The Monz, Toulouse
Partager