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

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 |
Definición en el archivo TrieSDisco.cpp.
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 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().

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

| stringstream* depuraos = NULL |
Definición en la línea 27 del archivo TrieSDisco.cpp.
Referenciado por escribeCopiaSubarbol(), escribeCopiaSubarbolRam(), escribeNodo(), escribePlanoStream(), mezclaDiscoRam(), y mezclaRec().
1.5.4