Como remover elemento de lista dentro de outra lista encadeada?

1 resposta
list
M

Como eu faço pra remover um elemento dentro de uma lista encadeada(supondo que essa mesma lista está dentro de outra lista encadeada)?

1 Resposta

H

Se uma lista está dentro de outra, então pressuponho que Lista -> Lista. Ou seja, um ponteiro Lista aponta para outra Lista.
Terá que percorrer através de um for por exemplo para encontra a posição que deseja alcançar na Lista. Sendo assim, quando obter o endereço de &Lista, certamente poderá percorrer dentro da próxima ‘Lista’ e passar como argumento para uma função o elemento que deseja remover dessa próxima ‘Lista’.

Eu criei um TAD lista para desenvolver um projeto pessoal (Talvez ajude a sanar o seu problema):

/* Remove primeiro Elemento da Lista - topo */
Lista *lst_Remove(Lista *atual)
{
    if (atual == NULL)
        return NULL;
    Lista *topo;
    topo = atual->prox;
    printf("\n Removida id: %d", atual->Carta.id);
    free(atual);
    atual = NULL; // Garante que o valor ? NULL

    return topo;
}

Eu mantenho um projeto pessoal que uso TAD lista >> github <<
Espero ter ajudado!

Criado 6 de julho de 2018
Ultima resposta 22 de ago. de 2018
Respostas 1
Participantes 2