TLista* remove_ini(TLista* lista) { TLista* aux = lista; if (!listavazia(aux)) { lista = lista->prox; free(aux); } return lista; }
int main(void) { // CRIA A VARIÁVEL LISTA TLista *listax; //INICIALIZA A LISTA COM UM PONTEIRO EM NULL listax = inicializa(); //INSERE OS DADOS NA LISTA listax = insere(listax, 'f'); listax = insere(listax, 'u'); listax = insere(listax, 'm'); listax = insere(listax, 'm'); listax = insere(listax, 'e'); listax = insere(listax, 'm'); listax = insere(listax, 'm'); listax = insere(listax, 'm'); listax = insere(listax, 'm'); listax = insere(listax, 'c'); // IMPRIME A LISTA RECURSIVAMENTE imprimeRec(listax); // SE A LISTA ESTIVER VAZIA, IMPRIME 1, SENÃO IMPRIME 0 printf("\n--> %d\n\n", listavazia(listax)); listax = remove_meio_rec(listax, 'm'); // IMPRIME A LISTA RECURSIVAMENTE imprimeRec(listax); // LIBERA TODA A LISTA RECURSIVAMENTE listax = libera_rec(listax); // SE A LISTA ESTIVER VAZIA, IMPRIME 1, SENÃO IMPRIME 0 printf("\n-->%d\n", listavazia(listax)); return EXIT_SUCCESS; }
int remover (no *lista) { if(!listavazia(lista)) { no *proxNo, *atual; atual = lista->prox; while(atual !=NULL) { proxNo = atual->prox; free(atual); atual= proxNo; } return 1; } return 0; }