27 # ifndef TPL_INDEXNODE_H 28 # define TPL_INDEXNODE_H 30 # include <tpl_dynSetTree.H> 31 # include <tpl_graph.H> 33 using namespace Aleph;
42 operator () (
typename GT::Node * p1,
typename GT::Node * p2)
const 44 return p1->get_info() < p2->get_info();
82 template <
class GT,
class Compare = Dft_Node_Cmp<GT>,
83 template <
class ,
class >
class Tree =
Treap,
89 typedef typename GT::Node GT_Node;
90 typedef typename GT::Node_Type GT_Node_Type;
119 GT_Node * ret_val = g.insert_node(info);
129 g.remove_node(ret_val);
137 GT_Node * ret_val = g.insert_node(std::forward<GT_Node_Type>(info));
147 g.remove_node(ret_val);
163 GT_Node ** ret_val = index.
search(p);
165 if (ret_val ==
nullptr)
182 GT_Node *
search(
const GT_Node_Type & info)
184 GT_Node dummy_node(info);
185 GT_Node * dummy_node_ptr = &dummy_node;
187 return search(dummy_node_ptr);
191 void remove(GT_Node * p)
220 GT_Node * p = it.get_curr_ne();
238 insert(it.get_curr_ne());
250 IndexNode(GT & __g, SN && __sn = SN()) : g(__g), sn(__sn)
255 IndexNode(GT & __g, SN & __sn) : g(__g), sn(__sn)
GT_Node * search(const GT_Node_Type &info)
Definition: tpl_indexNode.H:182
void remove_from_graph(GT_Node *p)
Definition: tpl_indexNode.H:202
size_t remove(const Key &key)
Definition: tpl_dynSetTree.H:327
void clear_index()
Borra el Ãndice; todos los nodos son eliminados.
Definition: tpl_indexNode.H:210
Definition: tpl_graph.H:1257
void clear_graph()
Elimina todos los nodos del grafo y del Ãndice.
Definition: tpl_indexNode.H:227
Definition: tpl_treap.H:535
GT_Node * insert(GT_Node *p)
Definition: tpl_indexNode.H:104
const size_t & size() const
Retorna la cardinalidad del conjunto.
Definition: tpl_dynSetTree.H:502
Definition: tpl_indexNode.H:85
Definition: tpl_graph.H:1270
void build_index()
Inserta todos los nodos del grafo en el Ãndice.
Definition: tpl_indexNode.H:216
GT_Node * search(GT_Node *p)
Definition: tpl_indexNode.H:161
Key & find(const Key &key) const
Definition: tpl_dynSetTree.H:414
GT_Node * insert_in_graph(GT_Node_Type &&info=GT_Node_Type())
Definition: tpl_indexNode.H:135
IndexNode(GT &__g, SN &&__sn=SN())
Definition: tpl_indexNode.H:250
void empty()
Elimina todos los elementos del conjunto.
Definition: tpl_dynSetTree.H:133
size_t size() const
Retorna la cantidad de arcos que contiene el Ãndice.
Definition: tpl_indexNode.H:261
Key * search(const Key &key) const
Definition: tpl_dynSetTree.H:462
GT_Node * insert_in_graph(const GT_Node_Type &info)
Definition: tpl_indexNode.H:117