Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int* pesquisa(trie* t, char** palavras, int nr_palavras, int* nr_resultados)
- {
- if(t==NULL||palavras==NULL||nr_palavras<=0||nr_resultados==NULL)print_error("Null argument");
- lista*lst_min,*lst_max;
- if(nr_palavras>=2){
- lst_min=lista_interseta(obtem_documentos(t,palavras[0]),obtem_documentos(t,palavras[1]),min_op);
- lst_min=lista_interseta(obtem_documentos(t,palavras[0]),obtem_documentos(t,palavras[1]),max_op);
- }
- else
- lst_min=lst_max=obtem_documentos(t,palavras[0]);
- int i;
- for(i=2;i<nr_palavras;i++){
- lst_min=lista_interseta(lst_min,obtem_documentos(t,palavras[i]),min_op);
- lst_max=lista_interseta(lst_max,obtem_documentos(t,palavras[i]),max_op);
- }
- elemento*p_min=lst_min->raiz,*p_max=lst_max->raiz;
- lista*lst=lista_nova();
- for(i=0;i<lista_tamanho(lst);i++){
- lista_insere(lst,(p_min->ocorrencias+log(p_max->ocorrencias)),i,p_min->elem);
- p_min=p_min->proximo;
- p_max=p_max->proximo;
- }
- lista_ordena(lst);
- elemento*p=lst->raiz;
- for(i=0;i<lista_tamanho(lst);i++){
- p->elem=-p->elem;
- p=p->proximo;
- }
- lista_apaga(lst_min);
- lista_apaga(lst_max);
- int*vetor=(int*)malloc(sizeof(int)+lista_tamanho(lst));
- p=lst->raiz;
- for(i=0;i<lst->tamanho;i++){
- vetor[i]=p->elem;
- }
- return vetor;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement