int main(void){ //inicializar criar_campo(); criar_lista(); system("pause"); return 0; }
/** * 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; }
/* * 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; }
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); } }
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; }