summaryrefslogtreecommitdiff
path: root/tags/START/glagen/algo_distribue/tree/node.hh
diff options
context:
space:
mode:
Diffstat (limited to 'tags/START/glagen/algo_distribue/tree/node.hh')
-rw-r--r--tags/START/glagen/algo_distribue/tree/node.hh78
1 files changed, 0 insertions, 78 deletions
diff --git a/tags/START/glagen/algo_distribue/tree/node.hh b/tags/START/glagen/algo_distribue/tree/node.hh
deleted file mode 100644
index b80a699..0000000
--- a/tags/START/glagen/algo_distribue/tree/node.hh
+++ /dev/null
@@ -1,78 +0,0 @@
-
-#ifndef NODE_HH_
-# define NODE_HH_
-
-#include <list>
-// Rajouter l'include correspondant a la template de TYPENODE
-// + implemente le std::cout abtrait pour les tests
-
-template<class TYPENODE> class Tree; // Declaration prealable
-
-template<class TYPENODE> class Node
-{
- friend class Tree<TYPENODE>;
-
-public:
- Node(const TYPENODE &d) : _link(new std::list<Node>), _data(d) {}
-
- void add_child(const TYPENODE& value) { _link->push_back(Node(value)); }
-
- void add_tree_node(const Node& value) { _link->push_back(value); }
-
- TYPENODE get_data() const { return (_data); }
-
- const unsigned int get_nb_childs() const { return (_link->size()); }
-
- std::list<Node>* get_childs() const { return (_link); }
-
- unsigned int get_number_node() const
- {
- unsigned int number_childs = _link->size();
- std::list<Node>::const_iterator child = _link->begin();
- unsigned int number_node = 1;
- for (unsigned int tmp = 0; tmp != number_childs; ++tmp)
- {
- number_node += child->get_number_node();
- ++child;
- }
- return (number_node);
- }
-
- // Renvoie le noeud fils suivant le numero a partir de 0
- Node get_child(const unsigned int& i) const
- {
- assert(i < _link->size());
- std::list<Node>::const_iterator child = _link->begin();
- for (unsigned int tmp = 0; tmp != i; ++tmp)
- ++child;
- return (*child);
- }
-
- // Numerotation de l'arbre suivant un parcours en largeur de 0 a n
- Node get_node_course_width(const int& ptr) const
- {
- int rptr = ptr;
- std::list<Node> ptr_node = *new std::list<Node>;
- ptr_node.push_back(*this);
- while (ptr_node.size())
- {
- std::list<Node>::iterator childs = ptr_node.begin();
- std::list<Node>::iterator child = childs->get_childs()->begin();
- for (; child != childs->get_childs()->end(); ++child)
- {
- ptr_node.push_back(*child);
- if (--rptr == 0)
- return (*child);
- }
- ptr_node.pop_front();
- }
- return (*this);
- }
-
-private:
-
- std::list<Node> *_link; // Pointeur vers le sous-arbre
- TYPENODE _data;
-};
-
-#endif // NODE_HH_