Esempio n. 1
0
File: main.c Progetto: streeck/ed1
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;
}
Esempio n. 2
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);
    }
}
Esempio n. 3
0
File: main.c Progetto: streeck/ed1
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;
}
Esempio n. 4
0
void finaliza_lista(LISTA **ptr) {
    if(ptr != NULL && (*ptr) != NULL) {
        atualizar_arquivo(*ptr);
        apagar_lista(ptr);
    }
}