#include <NodoTrieS.hpp>
Métodos públicos | |
NodoTrieS (string cad="", NodoTrieS *hijo_menor=NULL, NodoTrieS *hermano_mayor=NULL, set< Pos > cpos=set< Pos >()) | |
NodoTrieS (string cad, NodoTrieS *hijo_menor, NodoTrieS *hermano_mayor, Pos p) | |
~NodoTrieS () | |
set< Pos > | depuracpos () |
set< Pos > | busca (string pal) |
void | inserta (string pal, Pos p) |
void | aDotty (ostream &os, string pref="", bool primero=true, bool mayor=true) |
string | preorden () |
void | renumeraDocs (vector< long > renum) |
void | insertaConEtiqueta (string c, string etiqueta, long numdoc, long pini) |
Amigas | |
class | TrieSDiscoCasoPrueba |
NodoTrieS * | mezcla (NodoTrieS *a1, NodoTrieS *a2) |
unsigned long | precalcula_escribe_actual (NodoTrieS *n) |
unsigned long | precalcula_escribe_con_hermanos (NodoTrieS *n) |
unsigned long | precalcula_escribe (NodoTrieS *n) |
void | escribePlanoStream (NodoTrieS *n, iostream &os, long desp=0) |
long | escribeCopiaNodoRam (iostream &os, NodoTrieS *a, NodoTrieS **phijo, vector< long > *renum) |
long | escribeCopiaSubarbolRam (iostream &os, NodoTrieS *a, int saltacad, bool conHermanos, vector< long > *renum) |
long | mezclaDiscoRam (istream &is1, NodoTrieS *a2, int saltacad, iostream &os, bool conHermanos1, bool conHermanos2, vector< long > *renum1, vector< long > *renum2) |
long | escribeCopiaNodoRam (iostream &os, NodoTrieS *a, int saltacad, NodoTrieS **phijo, vector< long > *renum) |
Invariante: Arbol n-ario, hermanos ordenados lexicográficamente de menor a mayor. En lista de hermanos no hay 2 con prefijo común (i.e todos comienzan por letra diferente)
Definición en la línea 35 del archivo NodoTrieS.hpp.
NodoTrieS | ( | string | cad = "" , |
|
NodoTrieS * | hijo_menor = NULL , |
|||
NodoTrieS * | hermano_mayor = NULL , |
|||
set< Pos > | cpos = set<Pos>() | |||
) |
Constructora. Responsabilidad de liberar hijo_menor y hermano_mayor pasa a este nodo, esperando más eficiencia en mezclas.
cad | Cadena | |
hijo_menor | Apuntador a Hijo menor | |
hermano_mayor | Apuntador a hermano mayor | |
cpos | conjunto de posiciones donde está la palabra |
Definición en la línea 59 del archivo NodoTrieS.cpp.
Constructora que recibe una posición. Responsabilidad de liberar hijo_menor y hermano_mayor pasa a este nodo, esperando más eficiencia en mezclas. Inicializa conjunto de posiciones con una posición i.e. p.
cad | Cadena | |
hijo_menor | Apuntador a Hijo menor | |
hermano_mayor | Apuntador a hermano mayor | |
p | posición inicial |
Definición en la línea 75 del archivo NodoTrieS.cpp.
~NodoTrieS | ( | ) |
Destructora. Libera recursivamente hijo_menor y hermano_mayor
Definición en la línea 88 del archivo NodoTrieS.cpp.
set<Pos> depuracpos | ( | ) | [inline] |
Retorna copia de posiciones en palabra para depuración
Definición en la línea 101 del archivo NodoTrieS.hpp.
Referenciado por NodoTrieSCasoPrueba::prueba_renumeraDocs().
set< Pos > busca | ( | string | pal | ) |
Busca la palabra pal. Retorna lista de posiciones en las que aparece.
pal | Palabra por buscar |
Definición en la línea 102 del archivo NodoTrieS.cpp.
Hace referencia a busca().
Referenciado por busca(), NodoTrieSCasoPrueba::prueba_constructora(), TrieSDiscoCasoPrueba::prueba_escribeCopiaSubarbol(), RamDiscoCasoPrueba::prueba_mezclaDiscoRam(), TrieSDiscoCasoPrueba::prueba_mezclarec(), y NodoTrieSCasoPrueba::prueba_renumeraDocs().
void inserta | ( | string | pal, | |
Pos | p | |||
) |
Inserta una ocurrencia mas de la palabra pal, reportandola en posicion p.
pal | Palabra por insertar | |
p | Posición donde aparece |
Memoria | si la memoria se agota al insertar. En ese caso se garantiza que el arbol queda en un estado consistente. |
Definición en la línea 139 del archivo NodoTrieS.cpp.
Hace referencia a ASSERT, inserta(), MAXCAD, NodoTrieS(), Pos::numb, Pos::numd, y prefijo_comun_mas_largo().
Referenciado por indexa(), inserta(), insertaConEtiqueta(), insertaNormalizada(), leeTexto(), TrieSDiscoCasoPrueba::prueba_buscaPlanoStream(), RamDiscoCasoPrueba::prueba_escribePlano(), NodoTrieSCasoPrueba::prueba_inserta(), RamDiscoCasoPrueba::prueba_mezclaDiscoRam(), y TrieSDiscoCasoPrueba::prueba_mezclarec().
void aDotty | ( | std::ostream & | os, | |
string | pref = "" , |
|||
bool | primero = true , |
|||
bool | mayor = true | |||
) |
Escribe representacion de TrieS como árbol en el formato de dotty.
os | Flujo donde escribirá | |
pref | Prefijo para indentación | |
primero | Si es el primer nodo | |
mayor | Si es el mayor de los hermanos del nivel |
Definición en la línea 237 del archivo NodoTrieS.cpp.
Hace referencia a aDotty(), cad, cpos, y hermano_mayor.
Referenciado por aDotty(), main(), y NodoTrieSCasoPrueba::prueba_insertaConEtiqueta().
string preorden | ( | ) |
Con propósitos de depuración, retorna cadena con árbol en preorden.
Definición en la línea 288 del archivo NodoTrieS.cpp.
Hace referencia a preorden().
Referenciado por preorden(), NodoTrieSCasoPrueba::prueba_constructora(), TrieSDiscoCasoPrueba::prueba_escribeCopiaSubarbol(), NodoTrieSCasoPrueba::prueba_inserta(), NodoTrieSCasoPrueba::prueba_insertaConEtiqueta(), RamDiscoCasoPrueba::prueba_leePlano(), RamDiscoCasoPrueba::prueba_leeTexto(), NodoTrieSCasoPrueba::prueba_leeTexto(), y NodoTrieSCasoPrueba::prueba_mezcla().
void renumeraDocs | ( | vector< long > | renum | ) |
Renumera documentos referenciados en posiciones de trieS de acuerdo a vector renum. Una posición cuyo documento sea el número p (>=1) pasará a ser el número renum[p-1] (>=1).
renum | Vector para renumerar |
Definición en la línea 446 del archivo NodoTrieS.cpp.
Hace referencia a ASSERT, y renumeraDocs().
Referenciado por main(), NodoTrieSCasoPrueba::prueba_renumeraDocs(), y renumeraDocs().
void insertaConEtiqueta | ( | string | c, | |
string | etiqueta, | |||
long | numdoc, | |||
long | pini | |||
) |
Divide la cadena c en palabras e inserta cada una con la etiqueta dada en el árbol, referenciando el documento numdoc desde la posición inicial posini.
c | Cadena con palabras por insertar | |
etiqueta | Por agregar a cada palabra | |
numdoc | Número de documento del cual provienen | |
pini | Posición inicial en documento de la cadena c |
c | Cadena con palabras por insertar | |
etiqueta | Por agregar a cada palabra | |
numdoc | Número de documento del cual provienen | |
pini | Posición inicial en documento de la cadena c |
Definición en la línea 532 del archivo NodoTrieS.cpp.
Hace referencia a ASSERT, es_signo_punt(), inserta(), MAXCAD, normaliza(), y normalizaCaracter().
Referenciado por indexa(), y NodoTrieSCasoPrueba::prueba_insertaConEtiqueta().
friend class TrieSDiscoCasoPrueba [friend] |
Definición en la línea 50 del archivo NodoTrieS.hpp.
Mezcla dos tries retornando un tercero con el resultado. memoria: a1 y a2 son destruidos, la memoria que debían liberar ahora es responsabilidad del nuevo árbol retornado. Debería llamarse así: r = mezcla(a1, a2); a1=NULL; a2=NULL;
Definición en la línea 310 del archivo NodoTrieS.cpp.
Referenciado por mezcla().
unsigned long precalcula_escribe_actual | ( | NodoTrieS * | n | ) | [friend] |
unsigned long precalcula_escribe_con_hermanos | ( | NodoTrieS * | n | ) | [friend] |
Calcula tamaño en bytes requerido para escribir nodo y hermanos sin descendientes con función escribe
Definición en la línea 33 del archivo RamDisco.cpp.
unsigned long precalcula_escribe | ( | NodoTrieS * | n | ) | [friend] |
Calcula cuantos bytes requeriría el procedimiento escribe para representar el nodo, sus hermanos y descendientes
Definición en la línea 54 del archivo RamDisco.cpp.
void escribePlanoStream | ( | NodoTrieS * | n, | |
iostream & | os, | |||
long | desp = 0 | |||
) | [friend] |
long escribeCopiaNodoRam | ( | iostream & | os, | |
NodoTrieS * | a, | |||
NodoTrieS ** | phijo, | |||
vector< long > * | renum | |||
) | [friend] |
long escribeCopiaSubarbolRam | ( | iostream & | os, | |
NodoTrieS * | a, | |||
int | saltacad, | |||
bool | conHermanos, | |||
vector< long > * | renum | |||
) | [friend] |
Definición en la línea 236 del archivo RamDisco.cpp.
long mezclaDiscoRam | ( | istream & | is1, | |
NodoTrieS * | a2, | |||
int | saltacad, | |||
iostream & | os, | |||
bool | conHermanos1, | |||
bool | conHermanos2, | |||
vector< long > * | renum1, | |||
vector< long > * | renum2 | |||
) | [friend] |
Mezcla is1 con a2 y deja resultado en os.
is1 | 1er archivo de entrada, su cursor se espera sobre cadena del hermano menor | |
a2 | 2do trieS de entrada | |
saltacad | Cuanto de la cadena de a2 debe saltarse | |
os | salida, su cursor se espera al final --allí escribirá mezcla. | |
conHermanos1 | procesar hermanos de is1 | |
conHermanos2 | procesar hermanos de a2 | |
renum1 | Renumeración a documentos de is1 | |
renum2 | Renumeración a documentos de a2 |
Definición en la línea 314 del archivo RamDisco.cpp.
long escribeCopiaNodoRam | ( | iostream & | os, | |
NodoTrieS * | a, | |||
int | saltacad, | |||
NodoTrieS ** | phijo, | |||
vector< long > * | renum | |||
) | [friend] |
Definición en la línea 204 del archivo RamDisco.cpp.