2010-10-26 5 views
3

J'ai un arbre (un parent peut avoir un nombre quelconque d'enfants) et un texte d'entrée pour rechercher des nœuds par leur nom. Supposons l'arbre suivant:riche: arborescence - définir par programme le nœud sélectionné

A 
--A1 
----AA1 
--A2 

Lorsque A a deux enfants A1 et A2, A1 a un enfant AA1. Lorsque je tape A1 dans le texte d'entrée, je veux définir par programme les nœuds (A1, AA1) à sélectionner et, si nécessaire, développer les nœuds.

(j'ai un list<T> pour la construction de mon arbre)

+4

http://community.jboss.org/message/24520 –

+0

http://www.gregbugaj.com/?p=197 –

Répondre

0

Je ne sais pas ce que vous avez tout à fait demander, mais je vais supposer que vous souhaitez définir la valeur du noeud A1 et tous ses enfants quand vous tapez "A1". D'abord, vous devez vérifier que l'entrée de l'utilisateur est correctement formatée (ne ressemble pas à A? 1 lorsque seules les lettres et les chiffres sont utilisés pour identifier les nœuds). Deuxièmement, vous devez localiser le noeud indiqué. Troisièmement, vous devez définir la valeur et vérifier les enfants. Enfin, une fois que les enfants sont découverts, revenez à la troisième étape pour chaque enfant.

La récursion pourrait rendre votre méthode plus élégante mais ne serait pas nécessaire si vous n'aimez pas la récursivité.

Désolé pour une réponse aussi vague mais sans une question plus détaillée, il est difficile de donner une solution plus détaillée.

0

Vous pouvez utiliser TreeNode de richfaces au lieu de liste, de sorte que vous puissiez facilement répondre à vos besoins. parce qu'en l'utilisant, vous pouvez facilement obtenir une relation parent-enfant en utilisant la valeur de clé

Questions connexes