#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.
1.5.4