#include <iostream>
#include <iomanip>
#include <list>
#include <vector>
#include "NodoTrieS.hpp"
#include "Pos.hpp"
#include "Doc.hpp"
Ir al código fuente de este archivo.
Namespaces | |
namespace | Mt77 |
Definiciones | |
#define | TrieSDisco_hpp |
Funciones | |
long | escribeNodo (iostream &os, string c, set< Pos > *cpos, long dhijos, long desp=0) |
long | precalcula_escribe_actual (int longcad, set< Pos > *cpos) |
long | escribeCopiaNodo (iostream &os, istream &is, long &phijo, vector< long > *renum) |
long | escribeCopiaSubarbol (iostream &os, istream &is, bool conHermanos, vector< long > *renum=NULL) |
long | mezclaRec (istream &is1, istream &is2, iostream &os, bool conHermanos1, bool conHermanos2, vector< long > *renum1, vector< long > *renum2) |
long | eliminaDoc (istream &is, iostream &os, long n, vector< long > *renum) |
void | verificaIndice (istream &is) |
set< Pos > * | buscaPlano (char *na, char *nrel, string pal, vector< Doc > &docs) |
set< Pos > * | buscaPlanoStream (std::istream &is, string pal) throw (char *) |
unsigned long | leeRelacion (char *nrel, vector< Doc > &docs) |
void | escribeRelacion (char *nrel, vector< Doc > &docs, vector< long > *reord=NULL) |
#define TrieSDisco_hpp |
Definición en la línea 38 del archivo TrieSDisco.hpp.
Buscan una palabra en un índice
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 |
Definición en la línea 677 del archivo TrieSDisco.cpp.
Hace referencia a buscaPlanoStream(), errorFormato(), leeRelacion(), y verificaIndice().
Referenciado por TrieSDiscoCasoPrueba::prueba_buscaPlano().
set<Pos>* buscaPlanoStream | ( | std::istream & | is, | |
string | pal | |||
) | throw (char *) |
Busca una palabra en un índice ya abierto.
is | Flujo de entrada con cursor sobre cadena | |
pal | Palabra por buscar |
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().
long eliminaDoc | ( | istream & | is, | |
iostream & | os, | |||
long | n, | |||
vector< long > * | renum | |||
) |
Elimina n-esimo documento de is1 dejando resultado en os
is | archivo de entrada, su cursor se espera sobre cadena del hermano menor | |
os | salida, su cursor se espera al final - | |
n | Número de documento a eliminar | |
renum | Vector que retorna con renumración por efectuar a documentos referenciados |
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.
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. |
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().
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.
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. |
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().
long escribeNodo | ( | iostream & | os, | |
string | c, | |||
set< Pos > * | cpos, | |||
long | dhijos, | |||
long | desp = 0 | |||
) |
Escribe un nodo, con cadena y posiciones donde aparece.
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 |
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().
void escribeRelacion | ( | char * | nrel, | |
vector< Doc > & | docs, | |||
vector< long > * | reord = NULL | |||
) |
Escribe relación de documentos indexados en un flujo.
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().
unsigned long leeRelacion | ( | char * | nrel, | |
vector< Doc > & | docs | |||
) |
Lee relación de documentos indexados en un archivo
nrel | Nombre de archivo con relación | |
docs | Vector que desocupa y usa para almacenar vector de documentos |
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().
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.
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. |
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().
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
longcad | Longitud de la cadena del nodo | |
cpos | Posiciones |
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().
void verificaIndice | ( | istream & | is | ) |
Verifica marca de índice en is y deja listo curso
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().