Referencia de la Clase NodoTrieS

#include <NodoTrieS.hpp>

Diagrama de colaboración para NodoTrieS:

Collaboration graph
[leyenda]

Lista de todos los miembros.

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< Posdepuracpos ()
set< Posbusca (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
NodoTrieSmezcla (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)


Descripción detallada

Un nodo de un TrieS con apuntador a hermano menor e hijo mayor.

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.


Documentación del constructor y destructor

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.

Parámetros:
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.

Hace referencia a ASSERT, y MAXCAD.

Referenciado por inserta(), y mezcla().

NodoTrieS ( string  cad,
NodoTrieS hijo_menor,
NodoTrieS hermano_mayor,
Pos  p 
)

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.

Parámetros:
cad Cadena
hijo_menor Apuntador a Hijo menor
hermano_mayor Apuntador a hermano mayor
p posición inicial
p es una posición por insertar Convención: Si p tien algún componente negativo no lo inserta en conjunto cpos

Definición en la línea 75 del archivo NodoTrieS.cpp.

Hace referencia a ASSERT, MAXCAD, Pos::numb, y Pos::numd.

~NodoTrieS (  ) 

Destructora. Libera recursivamente hijo_menor y hermano_mayor

Definición en la línea 88 del archivo NodoTrieS.cpp.


Documentación de las funciones miembro

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.

Parámetros:
pal Palabra por buscar
Devuelve:
NULL en caso de que la palabra no este.
Apuntador retornado es a información del árbol. OJO al borrar.

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().

Gráfico de llamadas para esta función:

void inserta ( string  pal,
Pos  p 
)

Inserta una ocurrencia mas de la palabra pal, reportandola en posicion p.

Parámetros:
pal Palabra por insertar
p Posición donde aparece
Devuelve:
Nueva raiz.
Excepciones:
Memoria si la memoria se agota al insertar. En ese caso se garantiza que el arbol queda en un estado consistente.
Retorna nueva raíz. Pensando en siguiente arbol BUEN -> PODEROSO | O | S Se han considerado estos casos: En lista de hermanos: insertar A insertar C Igual: insertar BUEN Cambiando hijos: insertar BUENA insertar BUENO insertar BUENZ insertar BU insertar BUS

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().

Gráfico de llamadas para esta función:

void aDotty ( std::ostream &  os,
string  pref = "",
bool  primero = true,
bool  mayor = true 
)

Escribe representacion de TrieS como árbol en el formato de dotty.

Parámetros:
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().

Gráfico de llamadas para esta función:

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().

Gráfico de llamadas para esta función:

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).

Parámetros:
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().

Gráfico de llamadas para esta función:

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.

Parámetros:
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
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.
Parámetros:
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().

Gráfico de llamadas para esta función:


Documentación de las funciones relacionadas y clases amigas

friend class TrieSDiscoCasoPrueba [friend]

Definición en la línea 50 del archivo NodoTrieS.hpp.

NodoTrieS* mezcla ( NodoTrieS a1,
NodoTrieS a2 
) [friend]

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.

Parámetros:
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
Es un algoritmo similar al de escribeCopiaSubarbol: 1. Escribe todos los hermanos del menor al mayor. Para esto recorre los hermanos de is1 y a2. 2. Escribe todos los subárboles del menor al mayor. Para esto recorre los subárboles necesarios de is1 y 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.


La documentación para esta clase fué generada a partir de los siguientes ficheros:
Generado el Wed Jan 6 07:00:12 2010 para Mt77 por  doxygen 1.5.4