/* Função que remove um valor numa determinada posição da lista. */ string LIS_Remover(Lista lista, int indice) { string menosum = "menosum"; if (indice > lista->tamanho || indice <= 0){ return menosum; } if(lista->tamanho == 0){ return menosum; } if (indice == 1){ return LIS_RemoverInicio(lista); } No no = lista->cabeca->proximo; while (--indice){ no = no->proximo; } string valorremovido = no->conteudo; no->anterior->proximo = no->proximo; no->proximo->anterior = no->anterior; DestruirNo(no); lista->tamanho--; return valorremovido; }
/* Função que remove um valor numa determinada posição da lista. @param lista - lista em que será feita a remoção @param indice - indica a posição na lista do elemento que se deseja remover @return retorna o valor do elemento removido. Retorna -1 caso a lista esteja vazia, ou caso o índice não aponte para uma posição válida da lista. */ int LIS_Remover(Lista lista, int indice) { if (indice > lista->tamanho || indice <= 0){ return -1; } if(lista->tamanho == 0){ return -1; } if (indice == 1){ return LIS_RemoverInicio(lista); } No no = lista->cabeca; while (--indice){ no = no->proximo; } int valorremovido = no->valor; no->anterior->proximo = no->proximo; no->proximo->anterior = no->anterior; lista->tamanho--; return valorremovido; }