当前位置: 首页>>代码示例>>C++>>正文


C++ AvlTree::getSize方法代码示例

本文整理汇总了C++中AvlTree::getSize方法的典型用法代码示例。如果您正苦于以下问题:C++ AvlTree::getSize方法的具体用法?C++ AvlTree::getSize怎么用?C++ AvlTree::getSize使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在AvlTree的用法示例。


在下文中一共展示了AvlTree::getSize方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: gerarArquivosDat


//.........这里部分代码省略.........
    //Ela é retornada em ordem de nível para ser escrita nessa ordem
    int maxSize = indices.getMaxSizeByHeight();
    Indice* indicesOrdenados;
    indicesOrdenados = indices.getByLevel();
    printf("Organizou por nivel");
    
    //Abre ou cria o arquivo indices.dat para escrita
    FILE* indicesDat;
    indicesDat = fopen("..\\indices.dat","wb");
    
    printf("Abriu e comecou a gerar indices.dat\n");
    
    //percorre cada indice da lista
    for(int i=0;i<maxSize;++i){
        //coloca os valores que serão passado para o arquivo em "comando"
        char comando[100];
        for(int c=0;c<comandoTamMax;++c){
            comando[c] = indicesOrdenados[i].comando[c];
        }
        printf("%d - %s\n",(i+1),comando);
        //e em "posicao"
        int posicao = indicesOrdenados[i].posicao;
        //troca os 4 ultimos bytes de comando, guardando a posição.
        //*((int*)&a[96]) = 123;
        *((int*)&comando[96]) = posicao;
        
        for(int i=0;i<comandoTamMax;++i){
            fputc(comando[i],indicesDat);
        }
    }
    delete indicesOrdenados;
    
    //fecha o arquivo indices.dat
    fclose(indicesDat);
    printf("Terminou de gerar indices.dat\n");
    
    ///////////////////////////////////
    ///// TERMINOU A INDICES.DAT
    ///////////////////////////////////
    ///// COMEÇOU O PALAVRAS.DAT
    ///////////////////////////////////
    
    FILE* palavrasDat;
    palavrasDat = fopen("..\\palavras.dat","wb");
    printf("Abriu e comecou a gerar palavras.dat\n");
    printf("%d|%d\n",palavras.getSize(),palavras.getMaxSizeByHeight());
    
    //Exclui conectivos da árvore
    for(int i=0;i<qtdConectivos;i++){
        char conectivo[100];
        strcpy(conectivo,conectivos[i]);
        palavras.remove(Palavra(conectivo,0));
    }
    
    //Gera palavras ordenadas para inserção
    Palavra* palavrasOrdenadas = palavras.getByLevel();
    printf("Gerou palavras ordenadas");
    
    //Escreve qtd de palavras
    maxSize = palavras.getMaxSizeByHeight();
    char maxSizeW[4];
    *((int*)&maxSizeW[0]) = maxSize;
    for(int i=0;i<4;++i){
        fputc(maxSizeW[i],palavrasDat);
    }
    //Escreve palavras seguidas do inicio de local das posicoes,e a qtd de posicoes
    //"wait                         0 4"
    int posicao = 0;
    for(int i=0;i<maxSize;++i){
        Palavra atual = palavrasOrdenadas[i];
        printf("%d - %s\n",i,atual.palavra);
        *((int*)&atual.palavra[92]) = posicao;
        int qtd = atual.posicoes.size();
        *((int*)&atual.palavra[96]) = qtd;
        posicao += qtd;
        for(int i=0;i<100;++i){
            fputc(atual.palavra[i],palavrasDat);
        }
    }
    //Escreve as posicoes das manpages que contem as palavras
    char pos[4]; //converter o int para binário
    for(int i=0;i<maxSize;++i){
        Palavra atual = palavrasOrdenadas[i];
        while(!atual.posicoes.empty()){
            *((int*)&pos[0]) = atual.posicoes.front();
            atual.posicoes.pop_front();
            for(int i=0;i<4;++i){
                fputc(pos[i],palavrasDat);
            }
        }
    }
    
    fclose(palavrasDat);
    
    printf("Terminou de gerar palavras.dat\n");
    
    ///////////////////////////////////
    ///// TERMINOU A PALAVRAS.DAT
    ///////////////////////////////////
}
开发者ID:evsasse,项目名称:manpage-search,代码行数:101,代码来源:main.cpp


注:本文中的AvlTree::getSize方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。