Referencia del Archivo TrieSDisco.cpp

#include <iostream>
#include <iomanip>
#include <list>
#include <vector>
#include <fstream>
#include <istream>
#include <sstream>
#include "TrieSDisco.hpp"

Dependencia gráfica adjunta para TrieSDisco.cpp:

Ir al código fuente de este archivo.

Namespaces

namespace  Mt77

Funciones

long precalcula_escribe_actual (int longcad, set< Pos > *cpos)
long escribeNodo (iostream &os, string c, set< Pos > *cpos, long dhijos, long desp)
long escribeCopiaNodo (iostream &os, istream &is, long &phijo, vector< long > *renum)
long escribeCopiaSubarbol (iostream &os, istream &is, bool conHermanos, vector< long > *renum)
long mezclaRec (istream &is1, istream &is2, iostream &os, bool conHermanos1, bool conHermanos2, vector< long > *renum1, vector< long > *renum2)
set< Pos > * buscaPlanoStream (std::istream &is, string pal) throw (char *)
void verificaIndice (istream &is)
set< Pos > * buscaPlano (char *na, char *nrel, string pal, vector< Doc > &docs)
unsigned long leeRelacion (char *nrel, vector< Doc > &docs)
void escribeRelacion (char *nrel, vector< Doc > &docs, vector< long > *reord)

Variables

stringstream * depuraos = NULL


Descripción detallada

Representación en disco de un TrieS

Definición en el archivo TrieSDisco.cpp.


Documentación de las funciones

set<Pos>* buscaPlano ( char *  na,
char *  nrel,
string  pal,
vector< Doc > &  docs 
)

Buscan una palabra en un índice

Parámetros:
na Archivo con índice
nrel Archivo con relación de documentos referenciadso en índice
pal Palabra por buscar
docs En esta retorna la relación de documentos indexados
Devuelve:
Conjunto de posiciones donde aparece la palabra

Definición en la línea 677 del archivo TrieSDisco.cpp.

Hace referencia a buscaPlanoStream(), errorFormato(), leeRelacion(), y verificaIndice().

Referenciado por TrieSDiscoCasoPrueba::prueba_buscaPlano().

Gráfico de llamadas para esta función:

set<Pos>* buscaPlanoStream ( std::istream &  is,
string  pal 
) throw (char *)

Busca una palabra en un trieS mantenido en un steam en formato extra-simple

Definición en la línea 625 del archivo TrieSDisco.cpp.

Hace referencia a buscaPlanoStream(), leeCad(), leeNDesp(), y leePos().

Referenciado por buscaPlano(), buscaPlanoStream(), TrieSDiscoCasoPrueba::prueba_buscaPlanoStream(), y realizaBusqueda().

Gráfico de llamadas para esta función:

long escribeCopiaNodo ( iostream &  os,
istream &  is,
long &  phijo,
vector< long > *  renum 
)

En flujo de salida escribe copia del primer nodo (sin hijos) de un flujo de entrada. Verifica que la posición del hijo sea posterior.

Parámetros:
os flujo de salida, se espera que su "cursor" apunte al final
is flujo de entrada, su "cursor" sobre cadena del nodo por copiar.
phijo posición del nodo hijo registrada en el flujo de entrada
renum Vector para renumerar renum[0] tiene nuevo número menos 1 para documento 1, ... renum[n-1] nuevo número menos 1 para n-esimo documento. Si renum[i] es -1 no se incluirá en la respuesta el documento i+1 esimo que es como un borrado del subindice de ese documento, pero que deja todas las palabras del mismo en el TrieS --requeriría una optimización posterior.
Devuelve:
Posición donde escribe desplazamiento a hijos o 0 si no hay nodo en flujo de entrada.

Definición en la línea 90 del archivo TrieSDisco.cpp.

Hace referencia a ASSERT, escribeNodo(), leeCad(), leeNDesp(), y leePos().

Referenciado por mezclaDiscoRam(), mezclaRec(), y TrieSDiscoCasoPrueba::prueba_escribeCopiaNodo().

Gráfico de llamadas para esta función:

long escribeCopiaSubarbol ( iostream &  os,
istream &  is,
bool  conHermanos,
vector< long > *  renum = NULL 
)

En flujo de salida escribe copia de subárbol apuntado en el flujo de entrada. A medida que copia realiza algunas verificaciones.

Parámetros:
os flujo de salida, se espera que su "cursor" apunte al final
is flujo de entrada, su "cursor" sobre cadena del nodo por copiar.
conHermanos si es true también copia hermanos.
renum Vector para renumerar.
Ver también:
escribeCopiaNodo
Devuelve:
retorna la posición inicial de escritura en os

Definición en la línea 126 del archivo TrieSDisco.cpp.

Hace referencia a ASSERT, depuraos, escribeCopiaSubarbol(), escribeNDesp(), escribeNodo(), leeCad(), leeNDesp(), y leePos().

Referenciado por eliminaDoc(), escribeCopiaSubarbol(), mezclaDiscoRam(), mezclaRec(), y TrieSDiscoCasoPrueba::prueba_escribeCopiaSubarbol().

Gráfico de llamadas para esta función:

long escribeNodo ( iostream &  os,
string  c,
set< Pos > *  cpos,
long  dhijos,
long  desp = 0 
)

Escribe un nodo, con cadena y posiciones donde aparece.

Parámetros:
os Flujo de salido donde escribir, donde esté el "cursor"
c Cadena no vacía de máximo MAXCAD caracteres
cpos Conjunto de posiciones por escribir, NULL corresponde a vacío.
dhijos Posición en el archivo dond estará nodo con hijos, no negativa. Por convención una posición 0 significa que no tiene hijos.
desp Desplazamiento inicial
Devuelve:
Posición donde escribe desplazamiento a hijos

Definición en la línea 56 del archivo TrieSDisco.cpp.

Hace referencia a ASSERT, depuraos, escribeNDesp(), escribePos(), FINCADENA, MAXCAD, y precalcula_escribe_actual().

Referenciado por escribeCopiaNodo(), escribeCopiaNodoRam(), escribeCopiaSubarbol(), escribeCopiaSubarbolRam(), escribePlanoStream(), mezclaDiscoRam(), mezclaRec(), y TrieSDiscoCasoPrueba::prueba_escribeNodo().

Gráfico de llamadas para esta función:

void escribeRelacion ( char *  nrel,
vector< Doc > &  docs,
vector< long > *  reord = NULL 
)

Escribe relación de documentos indexados en un flujo.

Parámetros:
nrel Nombre de archivo por crear o sobreescribir.
docs Vector de documentos
reord Si no es NULL es reordenamiento para vdoc que debe quedar en archivo

Definición en la línea 730 del archivo TrieSDisco.cpp.

Hace referencia a ASSERT, escribeDocs(), MARCAREL, y MAXLURL.

Referenciado por agregaDoc(), eliminaDoc(), escribePlano(), main(), mezclaDosDisco(), TrieSDiscoCasoPrueba::prueba_buscaPlano(), TrieSDiscoCasoPrueba::prueba_escribeRelacion(), y RamDiscoCasoPrueba::prueba_leePlano().

Gráfico de llamadas para esta función:

unsigned long leeRelacion ( char *  nrel,
vector< Doc > &  docs 
)

Lee relación de documentos indexados en un archivo

Parámetros:
nrel Nombre de archivo con relación
docs Vector que desocupa y usa para almacenar vector de documentos
Devuelve:
Cantidad de documentos leidos

Definición en la línea 703 del archivo TrieSDisco.cpp.

Hace referencia a ASSERT, errorFormato(), leeDocs(), MARCAREL, y MAXLURL.

Referenciado por agregaDoc(), buscaPlano(), eliminaDoc(), leePlano(), listaPalabras(), mezclaDosDisco(), TrieSDiscoCasoPrueba::prueba_leeRelacion(), y realizaBusqueda().

Gráfico de llamadas para esta función:

long mezclaRec ( istream &  is1,
istream &  is2,
iostream &  os,
bool  conHermanos1,
bool  conHermanos2,
vector< long > *  renum1,
vector< long > *  renum2 
)

Mezcla is1 con is2 y deja resultado en os.

Parámetros:
is1 1er archivo de entrada, su cursor se espera sobre cadena del hermano menor
is2 2do archivo de entrada, su cursor se espera sobre cadena del hermano menor
os salida, su cursor se espera al final --allí escribirá mezcla.
conHermanos1 Procesar hermanos de is1
conHermanos2 Procesar hermanos de is2
renum1 Especifica cambio en índices en is1. A diferencia de posiciones, los documentos se numeran comenzando en 0 --como renum1.
renum2 Especifica cambio en índices en is2. A diferencia de posiciones, los documentos se numeran comenzando en 0 --como renum2.
Devuelve:
retorna la posición inicial de escritura en os
Es un algoritmo similar al de escribeCopiaSubarbol: 1. Escribe todos los hermanos del menor al mayor. Para esto recorre los hermanos de is1 e is2. 2. Escribe todos los subárboles del menor al mayor. Para esto recorre los subárboles necesarios de is1 e is2

Definición en la línea 207 del archivo TrieSDisco.cpp.

Hace referencia a ASSERT, depuraos, escribeCopiaNodo(), escribeCopiaSubarbol(), escribeNDesp(), escribeNodo(), leeCad(), leeNDesp(), leePos(), MAXLNUMERO, mezclaRec(), y prefijo_comun_mas_largo().

Referenciado por mezclaDosDisco(), mezclaRec(), y TrieSDiscoCasoPrueba::prueba_mezclarec().

Gráfico de llamadas para esta función:

long precalcula_escribe_actual ( int  longcad,
set< Pos > *  cpos 
)

Calcula cuantos bytes requeriría almacenar un nodo con cadena de longitud [longdad] y con un número [numpos] de posiciones

Parámetros:
longcad Longitud de la cadena del nodo
cpos Posiciones
Devuelve:
Cantidad de bytes que requeriría su almacenamiento

Definición en la línea 31 del archivo TrieSDisco.cpp.

Hace referencia a longNDesp(), y longPos().

Referenciado por escribeNodo(), escribePlanoStream(), precalcula_escribe_con_hermanos(), y TrieSDiscoCasoPrueba::prueba_escribeNodo().

Gráfico de llamadas para esta función:

void verificaIndice ( istream &  is  ) 

Verifica marca de índice en is y deja listo curso

Parámetros:
is Flujo de entrada a un índice Si no logra verifica lanza excepción con mensaje de error

Definición en la línea 666 del archivo TrieSDisco.cpp.

Hace referencia a errorFormato(), MARCAIND, y MAXLURL.

Referenciado por agregaDoc(), buscaPlano(), eliminaDoc(), leePlano(), listaPalabras(), main(), mezclaDosDisco(), y realizaBusqueda().

Gráfico de llamadas para esta función:


Documentación de las variables

stringstream* depuraos = NULL

Definición en la línea 27 del archivo TrieSDisco.cpp.

Referenciado por escribeCopiaSubarbol(), escribeCopiaSubarbolRam(), escribeNodo(), escribePlanoStream(), mezclaDiscoRam(), y mezclaRec().


Generado el Wed Jan 6 06:59:50 2010 para Mt77 por  doxygen 1.5.4