Listas/listaEncadeadaDupla.c
//Remove o primeiro 'NO' com a chave igual
Remove o primeiro 'NO' com a chave igual
Remove o primeiro ' NO ' com a chave igual
void rmvNOMeio(int chave, NO **ptInicio, NO **ptFim){ 
    printf("-----------------------\n");
    if((*ptInicio) !=  NULL){
        printf("RMV_MEIO. CHAVE = %d\n", chave);
        if(buscar(chave, (*ptInicio)) == 1){
            NO *aux;
            aux = (*ptInicio);
            NO *lixo;
            while(1){
                if(aux->prox->chave == chave){
                    lixo = aux->prox;
                    aux->prox->prox->ante = aux;
                    aux->prox = aux->prox->prox;
                    break;
                } else aux = aux->prox;
            }
            int miniBuff = lixo->chave;
            free(lixo);
            printf("Chave %d removida!\n", miniBuff);
            printf("-----------------------\n");
        } else{
            printf("RMV_MEIO FALHOU!\n");
            printf("-----------------------\n");
        }
    } else{
        printf("RMV_MEIO FALHOU!\n");
        printf("-----------------------\n");
    }
}
void rmvNOMeio ( int chave , NO * * ptInicio , NO * * ptFim ) { printf ( " \n " ) ; if ( ( * ptInicio ) != NULL ) { printf ( " \n " , chave ) ; if ( buscar ( chave , ( * ptInicio ) ) == 1 ) { NO * aux ; aux = ( * ptInicio ) ; NO * lixo ; while ( 1 ) { if ( aux -> prox -> chave == chave ) { lixo = aux -> prox ; aux -> prox -> prox -> ante = aux ; aux -> prox = aux -> prox -> prox ; break ; } else aux = aux -> prox ; } int miniBuff = lixo -> chave ; free ( lixo ) ; printf ( " \n " , miniBuff ) ; printf ( " \n " ) ; } else { printf ( " \n " ) ; printf ( " \n " ) ; } } else { printf ( " \n " ) ; printf ( " \n " ) ; } }
Remove o primeiro 'NO' com a chave igual
Remove o primeiro ' NO ' com a chave igual
//O(n) //Verificar se a chave existe