Mise en oeuvre de l'arbre (graphisme acyclique dirigé)
J'ai besoin d'un arbre /graphe dirigé acyclique de mise en œuvre de quelque chose comme ceci:
public class TreeNode<K, V> {
private K key; //'key' for this node, always present
private V value; //'value' for this node, doesn't have to be set
private TreeNode<K, V> parent;
private Set<TreeNode<K, V>> children;
}
- Il n'y a pas de tri de tout genre.
- La
TreeNode
est juste un wrapper autour de la clé et une valeur possible (les nœuds n'ont pas les valeurs de set). - J'ai besoin de des liens à la fois les parents et les enfants.
Il n'y a rien là-bas dans la norme Api ou des Communes etc qui va le faire pour moi?
Je n'ai pas l'esprit de l'écrire moi-même (et je ne suis certainement pas vous demandant de gens) je ne veux pas ré-inventer la roue.
source d'informationauteur SCdF
Vous devez vous connecter pour publier un commentaire.
Il ne semble pas être quelque chose de la sorte. J'ai demandé à une question similaire la semaine dernière et a fini par mettre en place mon propre arbre. Mon application est très similaire à ce que vous proposez:
Vous devrez ajouter un lien vers les parent(s).
Il y a aussi http://www.jgrapht.orgqui a des logiciels sous licence LGPL. Je vous préviens cependant, la mise en œuvre de votre propre est lourde de danger. Si vous prévoyez sur l'utilisation de la récursivité sur votre structure (qui est un graphique), vous devrez vous assurer que c'est acyclique, ou vous allez courir dans une boucle infinie de problèmes. Mieux utiliser la troisième partie du code où ils ont déjà abordé les questions.
Je dirais que c'est mieux pour le déploiement de votre propre mise en œuvre (en plus, vous avez déjà l'interface bien pensée). Quelles sont les opérations que vous êtes planification à effectuer sur cet arbre, de toute façon? Vous auriez probablement souhaitez concevoir votre API autour des choses que vous voulez... accès direct à chacun des nœuds par clé/valeur? types de traversals? ajouter/supprimer des opérations?
Si vous êtes à la recherche pour plus d'graphique capacités, JDigraph's Le digraphe classe doit s'adapter à la facture.