Open pauloafpjunior opened 9 years ago
Eu fiz uma função aqui, não sei se é o jeito certo, porém é 50% funcional, kkk, quando o número tá na lista, ela funciona normalmente, mas quando eu passo um número que não tá, ele deveria rodar o while até ser diferente de NULL, não entrar no if, e então sair do while, e retornar -1, mas quando vou rodar com um número que não tá na lista da aquela janela de programa não respondendo, qual o erro?
int indexOf(ListaEnc* lista, int pos, int item){ if (lista == NULL) return ESTRUTURA_NAO_INICIALIZADA; if (estahVazia(lista)) return ESTRUTURA_VAZIA; int cont=0; No aux; pos = NULL; aux = lista->inicio; while(aux->item != NULL){ if(aux->item == item){ pos = cont; return OK; } aux = aux->prox; cont++; } free(aux); aux = NULL; return -1; }
Alguns problemas:
Acho que era isso!
e assim?
int indexOf(ListaEnc* lista, int *pos, int item)
{
if (lista == NULL)
return ESTRUTURA_NAO_INICIALIZADA;
if (estahVazia(lista))
return ESTRUTURA_VAZIA;
int cont=0;
*pos = -1;
No *aux;
aux = lista->inicio;
while(aux != NULL){
if(aux->item == item){
*pos = cont;
return OK;
}
aux = aux->prox;
cont++;
}
return OK;
}
Excelente, @MarceloGouveia77.
Criar uma função capaz de retornar a posição de um determinado item na lista. Caso haja duplicações, a posição retornada é da primeira ocorrência do item na lista. Caso o item não esteja na lista, deve-se retornar o valor -1.