예제 #1
0
int main(void){ //inicializar
    criar_campo();
    criar_lista();
             
    system("pause");
    return 0;
}
예제 #2
0
파일: scope.c 프로젝트: mathnogueira/c-
/**
 * Cria um novo nó da árvore de escopos.
 *
 * @return nó da árvore.
 */
struct ScopeNode* ScopeNode_Create() {
	struct ScopeNode *node = (struct ScopeNode*) malloc(sizeof(struct ScopeNode));
	node->escopo = SysTable_Create();
	node->subscopes = criar_lista();
	node->parent = NULL;
	node->numChildren = 0;
	return node;
}
예제 #3
0
/*
* Arquivo de testes, aqui pode ser testadas todas
* as funções implementadas da linkedList.
*/
int main() {
  linkedList minha_lista = criar_lista();
  adicionar_no(minha_lista, 6);
  adicionar_no(minha_lista, 3);
  adicionar_no(minha_lista, 5);

  mostrar_lista(minha_lista);
  printf("O tamanho da lista é: %d\n", minha_lista->tamanho);

  return 0;
}
예제 #4
0
void sugestao_site(LISTA *lista, char *chave) {
    LISTA *sugestoes = criar_lista();
    LISTA_SEQ *aux = criar_lista_seq();
    int flag = 0;

    if(lista != NULL && chave != NULL) {
        NO *p = lista->cabeca->proximo;
        //primeira busca e preenchendo a lista 'aux' com as palavras chaves de todos os resultados encontrados
        while(p != NULL) {
            if(busca_chave_seq(p->item->palavras, chave, 0, tamanho_seq(p->item->palavras)-1)) {
                transfere_seq(aux, p->item->palavras);
                flag = 1;
            }
            p = p->proximo;
        }

        //segunda busca - utilizando todas as palavras chaves
        while(!listaVazia_seq(aux)) {
            char *word = remove_fim_seq(aux);
            p = lista->cabeca->proximo;

            while(p != NULL) {
                if(busca_chave_seq(p->item->palavras, word, 0, tamanho_seq(p->item->palavras)-1)) {
                    insere_site(sugestoes, criar_no(criar_item(p->item->codigo, p->item->nomeSite, p->item->relevancia, p->item->link)));
                }
                p = p->proximo;
            }

            free(word);
        }

        //imprimindo os resultados
        if(!vazia(sugestoes) && (sugestoes!=NULL)) {
            p = sugestoes->cabeca->proximo;
            while(p != NULL) {
                imprime_site_busca(p);
                p = p->proximo;
            }
        }

        if(flag == 0) {
            printf("Nenhum resultado encontrado!\n");
        }

        liberar_lista_seq(&aux);
        apagar_lista(&sugestoes);
    }
}
예제 #5
0
int main(int argc, char const *argv[])
{
    FILE *fp = fopen("googlebot.txt", "r");
    LISTA *lista = criar_lista();
    int oper, codigo, relevancia, i;
    char *palavra, *nomeSite, *link;

    leArquivo(fp, lista);

    fclose(fp);

	if(fp != NULL){
        do{
            printf("1 - Inserir site\n2 - Inserir palavra chave\n3 - Remover um site\n4 - Atualizar relevancia\n");
            printf("5 - Mostrar lista\n6 - Busca por palavra chave\n7 - Sugestoes de sites\n8 - Sair\n\n");
            scanf("%d", &oper);
            switch(oper){
                case 1:
                //Inserir um novo site na lista
                    do{
                        printf("Codigo: ");
                        scanf("%d", &codigo);
                        if(codigo < 0 || codigo > 9999)
                            printf("Codigo invalido. Digite um valor entre 0 e 9999\n");
                    }while(codigo < 0 || codigo > 9999);

                    getchar();
                    printf("Nome Site: ");
                    nomeSite = lerString();
                    if(strlen(nomeSite) > TAM-1)
                        nomeSite[TAM-1] = '\0';

                    do{
                        printf("Relevancia: ");
                        scanf("%d", &relevancia);
                        if(relevancia < 0 || relevancia > 1000)
                            printf("Relevancia invalido. Digite um valor entre 0 e 1000\n");
                    }while(relevancia < 0 || relevancia > 1000);

                    getchar();
                    printf("Link: ");
                    link = lerString();
                    if(strlen(link) > N-1)
                        link[N-1] = '\0';

                    if(!insere_site( lista, criar_no(criar_item(codigo, nomeSite, relevancia, link)))){
                        printf("Erro ao inserir site!\n");
                    }

                    free(link);
                    free(nomeSite);
                    break;
                case 2:
                //Inserir palavra chave
                    do{
                        printf("Codigo: ");
                        scanf("%d", &codigo);
                        if(codigo < 0 || codigo > 9999)
                            printf("Codigo invalido. Digite um valor entre 0 e 9999\n");
                    }while(codigo < 0 || codigo > 9999);

                    getchar();
                    printf("Palavra chave: ");
                    palavra = lerString();
                    if(strlen(palavra) > TAM-1)
                        palavra[TAM-1] = '\0';

                    for(i=0; i < strlen(palavra); i++){
                        palavra[i] = ctolower(palavra[i]);
                    }

                    if(!insere_chave(lista, codigo, palavra)){
                        printf("Erro ao inserir palavra chave!\n");
                    }
                    free(palavra);
                    break;
                case 3:
                //Remover um site
                    do{
                        printf("Codigo: ");
                        scanf("%d", &codigo);
                        if(codigo < 0 || codigo > 9999)
                            printf("Codigo invalido. Digite um valor entre 0 e 9999\n");
                    }while(codigo < 0 || codigo > 9999);

                    if(!remove_site(lista, codigo)){
                        printf("Erro ao remover site!\n");
                    }
                    break;
                case 4:
                //Atualizar relevancia
                    do{
                        printf("Codigo: ");
                        scanf("%d", &codigo);
                        if(codigo < 0 || codigo > 9999)
                            printf("Codigo invalido. Digite um valor entre 0 e 9999\n");
                    }while(codigo < 0 || codigo > 9999);

                    do{
                        printf("Relevancia: ");
                        scanf("%d", &relevancia);
                        if(relevancia < 0 || relevancia > 1000)
                            printf("Relevancia invalido. Digite um valor entre 0 e 1000\n");
                    }while(relevancia < 0 || relevancia > 1000);

                    atualiza_relevancia(lista, codigo, relevancia);
                    break;
                case 5:
                //Mostrar a lista
                    imprime_lista(lista);
                    break;
                case 6:
                //Busca por palavra chave
                    getchar();
                    printf("Palavra chave: ");
                    palavra = lerString();
                    if(strlen(palavra) > TAM-1)
                        palavra[TAM-1] = '\0';

                    for(i=0; i < strlen(palavra); i++){
                        palavra[i] = ctolower(palavra[i]);
                    }

                    busca_palavra(lista, palavra);
                    free(palavra);
                    break;
                case 7:
                //Sugestao do site
                    getchar();
                    printf("Palavra chave: ");
                    palavra = lerString();
                    if(strlen(palavra) > TAM-1)
                        palavra[TAM-1] = '\0';

                    for(i=0; i < strlen(palavra); i++){
                        palavra[i] = ctolower(palavra[i]);
                    }

                    sugestao_site(lista, palavra);
                    free(palavra);
                    break;
                default: break;
            }
        }while(oper != 8);

        finaliza_lista(&lista);
	} else {
    	printf("Could not open googlebot.txt\n");
    }

	return 0;
}