00001 /// \file 00002 /// Implémentation des classe Node_Iterator et Edge_Iterator 00003 /////////////////////////////////////////////////////////////////////////////// 00004 /// Classe : Node_Iterator 00005 /////////////////////////////////////////////////////////////////////////////// 00006 #include "Iterator.hpp" 00007 Node_Iterator::Node_Iterator(const Node_Leaf* node){ 00008 // Les 2 itérators sont égaux donc pas de successeur 00009 current = end; 00010 } 00011 Node_Iterator::Node_Iterator(const Node_Graph* node){ 00012 // current pointe sur le premier noeud 00013 current = node->vNode.begin(); 00014 // end pointe sur la fin 00015 end = node->vNode.end(); 00016 } 00017 bool Node_Iterator::hasNext(){ 00018 // il existe un noeud suivant si les 2 itérateurs sont différents 00019 return (current != end); 00020 } 00021 Node Node_Iterator::next(){ 00022 // noeud à retourner 00023 Node ret = *current; 00024 // avance 00025 current++; 00026 return ret; 00027 } 00028 /////////////////////////////////////////////////////////////////////////////// 00029 /// Classe : Edge_Iterator 00030 /////////////////////////////////////////////////////////////////////////////// 00031 Edge_Iterator::Edge_Iterator(const Node_Leaf* node){ 00032 // Les 2 itérators sont égaux donc pas de successeur 00033 current = end; 00034 } 00035 Edge_Iterator::Edge_Iterator(const Node_Graph* node){ 00036 // current pointe sur le premier noeud 00037 current = node->vEdge.begin(); 00038 // end pointe sur la fin 00039 end = node->vEdge.end(); 00040 } 00041 bool Edge_Iterator::hasNext(){ 00042 // il existe un noeud suivant si les 2 itérateurs sont différents 00043 return (current != end); 00044 } 00045 Edge Edge_Iterator::next(){ 00046 // arrête à retourner 00047 Edge ret = *current; 00048 // avance 00049 current++; 00050 return ret; 00051 }