Y a-t-il un avantage à utiliser un modèle de visiteur dans un scénario récursif? Si oui pouvez-vous le démontrer par programme?Modèle de visiteur et récursivité
2
A
Répondre
3
Que diriez-vous de traverser un arbre binaire? par exemple.
private class NodeVisitor{
public void visit(VisitableNode<T> node){
if (node!=null) {
print node.data;
}
}
}
public class VisitableTree<T> {
private VisitableNode<T> root;
public void printNodes(){
new NodeVisitor.visit(root);
}
private class VisitableNode<T> {
T data;
VisitableNode<T> left;
VisitableNode<T> right;
public void visit(NodeVisitor<T> visitor){
..do something
visitor.visit(left);
visitor.visit(right);
}
}
}
0
Je pense que le principal avantage est qu'il ne nécessite que des itérations sur les collections 1 niveau de profondeur. Il peut rappeler, mais au moins la méthode accept() sera propre.
Questions connexes
- 1. modèle de visiteur contre conditions?
- 2. Modèle de conception de visiteur dans OCaml
- 3. Modèle de visiteur + principe ouvert/fermé
- 4. Modèle de visiteur, enlever le besoin de lancer
- 5. différence entre la récursivité structurelle et la récursivité accumulative
- 6. Fonctions de rappel Javascript et récursivité
- 7. Techniques de récursivité Perl?
- 8. Profondeur de suivi en récursivité
- 9. Utilisation de tableaux avec récursivité
- 10. Éviter la récursivité
- 11. Où la méthode Accept du modèle de visiteur doit-elle être définie dans ce cas?
- 12. manière préférée d'implémenter le modèle de visiteur dans les langages dynamiques?
- 13. Obtenir la latitude et la longitute informations d'un visiteur Web
- 14. rupture d'un récursivité en java
- 15. Régler la profondeur de récursivité maximale lors de la sérialisation un modèle Django avec clé étrangère à JSON
- 16. Suppression d'éléments d'IDictionary avec la récursivité
- 17. Qu'est-ce que l'élimination de la récursivité de la queue?
- 18. Mix de modèle et struct
- 19. Identifier le pays du visiteur de mon site web
- 20. C++ Insérer un arbre de recherche binaire via la récursivité
- 21. somme de récursivité queue, puissance, gcd en prolog?
- 22. Comment utiliser le théorème Master pour décrire la récursivité?
- 23. Silverlight MVVM reliant le modèle et le modèle de vue
- 24. MVVM & WCF - Voir le modèle et la relation de modèle
- 25. balises de modèle Django personnalisé et chargeurs modèle
- 26. Python sched.scheduler dépasse la profondeur de récursivité maximale
- 27. Stack déborde de la récursivité profonde dans Java?
- 28. modèle et boucles while
- 29. VC6 et erreur modèle
- 30. Vues, blocs et modèle?
Est-ce vraiment récursif? Je suis soit manquant quelque chose, ou ce n'est pas. Je pense que vous voulez (dans votre classe VisitNode) visitor.visit (this); et puis vous appelez this.visit (à gauche) (et à droite). Voir [ce lien] (http://cs.lmu.edu/~ray/notes/binarytrees/). – javamonkey79
Modifier mon dernier commentaire, il devrait être left.visit (visiteur) (et à droite) – javamonkey79