Je cherchais une structure de données d'arbre ou de graphe en C#, mais je suppose qu'il n'y en a pas fournie. Un Examen Approfondi des Structures de Données Utilisant C# 2.0 en parle un peu. Y a-t-il une bibliothèque pratique couramment utilisée pour fournir cette fonctionnalité? Peut-être à travers un pattern stratégique pour résoudre les problèmes présentés dans l'article.
Je me sens un peu bête en implémentant mon propre arbre, tout comme je le ferais en implémentant ma propre ArrayList.
Je veux juste un arbre générique qui peut être déséquilibré. Pensez à un arbre de répertoires. C5 a l'air sympa, mais leurs structures d'arbre semblent être implémentées comme des arbres rouges-noirs équilibrés mieux adaptés à la recherche qu'à la représentation d'une hiérarchie de nœuds.
2 votes
Un peu plus d'arbres extrêmes : stackoverflow.com/questions/196294/… ;-)
0 votes
Y a-t-il une raison pour laquelle on ne peut pas inclure un TreeView dans le projet et l'utiliser ? Il n'est pas nécessaire de le montrer réellement à un utilisateur. Bien sûr, il existe plusieurs formes de projets où cela n'est pas une option. On peut toujours créer de nouvelles classes qui héritent par exemple de TreeNode s'il est nécessaire d'avoir une complexité spéciale ?
11 votes
Je considérerais que ce serait une mauvaise idée d'importer une bibliothèque UI entière pour un arbre très simple.
1 votes
Pouvez-vous motiver? Ce n'est pas comme si l'espace disque dur réel était encore un problème? Maladroit? Comme je l'ai mentionné précédemment, je comprends que ce n'est pas une solution pour un logiciel spécialisé ou quelque chose sans interface utilisateur existante. Je suis un programmeur paresseux, si je peux obtenir une structure gratuitement, c'est tout bon. Et une bibliothèque existante offre beaucoup gratuitement, on peut trouver beaucoup de code de personnes l'ayant utilisé pour beaucoup de choses.
0 votes
Je ne discute pas, je veux juste connaître votre raisonnement.
3 votes
Voici un type d'arbre simple:
public class Arbre : List> { public T Valeur; }
.0 votes
Jetez un œil à codeproject.com/Articles/12476/A-Generic-Tree-Collection
1 votes
Je pense que la raison de ne pas utiliser un contrôle d'arborescence caché est qu'il contribue à un gonflement inutile qui impacte non seulement l'espace mais aussi la mémoire et le temps d'exécution. Ne conduisez pas un 747 si vous devez traverser la rue, il pourrait être plus rapide de marcher.
1 votes
Aussi, cela pourrait créer de nombreux problèmes de compatibilité et de maintenance. Votre programme est uniquement pour Windows... juste parce que vous avez utilisé un arbre d'interface utilisateur pour winforms ou WPF ? Que se passe-t-il si vous voulez mettre à jour votre logiciel, mais que vous dépendez également de la compatibilité (probablement de nombreux) dépendances de la machinerie de l'interface utilisateur ?