int main() { int i; //criar a lista LISTA_LIGADA_CIRCULAR lista; criar(&lista); //inserir itens na &lista for (i = 0; i < 10; i++) { ITEM item; item.chave = i; item.valor = rand(); inserir_fim(&lista, &item); } imprimir(&lista); ITEM item1; if (buscar(&lista, 9, &item1)) { printf("encontrado: %d - %d\n---\n", item1.chave, item1.valor); } remover_posicao(&lista, 9); ITEM item2; item2.chave = 111; item2.valor = 333; inserir_fim(&lista, &item2); imprimir(&lista); apagar_lista(&lista); 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 i; //criar a &lista LISTA_DUPLAMENTE_LIGADA lista; criar(&lista); //inserir itens na &lista for (i = 0; i < 10; i++) { ITEM item; item.chave = i; item.valor = rand(); if (i%2==0) { inserir_inicio(&lista, &item); } else { inserir_fim(&lista, &item); } } imprimir(&lista); printf("---\n"); imprimir_inverso(&lista); printf("---\n"); { ITEM item; if (buscar(&lista, 8, &item)) { printf("encontrado: %d - %d\n---\n", item.chave, item.valor); } for (i = 0; i < 3; i++) { remover_inicio(&lista); } } // tenta inserir novo ITEM em posicao invalida ITEM item; item.chave = rand(); item.valor = 111; inserir_posicao(&lista, 9, &item); imprimir(&lista); printf("---\n"); // insere 5 itens no final da lista for (i = 0; i < 5; i++) { ITEM item; item.chave = rand(); item.valor = i; inserir_fim(&lista, &item); } imprimir(&lista); printf("---\n"); // remove 3 ultimos itens da lista for (i = 0; i < 3; i++) { remover_fim(&lista); } // remove o primeiro no remover_posicao(&lista, 0); imprimir(&lista); printf("---\n"); apagar_lista(&lista); return 0; }
void finaliza_lista(LISTA **ptr) { if(ptr != NULL && (*ptr) != NULL) { atualizar_arquivo(*ptr); apagar_lista(ptr); } }