void libera_rec (Lista* l) { if (!vazia(l)) { libera_rec(l->prox); free(l); } }
TLista* libera_rec(TLista* lista) { TLista* aux = lista; if (aux != NULL) { lista = lista -> prox; free(aux); aux = lista; return libera_rec(aux); } return aux; }
int main() { Lista* l; l = inicializa(); l = insere_ordenado(l, 78); l = insere_ordenado(l, 56); l = insere_ordenado(l, 23); l = insere_ordenado(l, 45); imprime_rec(l); l = retira_rec(l, 78); imprime_rec(l); l = retira_rec(l, 45); imprime_rec(l); libera_rec(l); system("PAUSE"); return 0; }
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; }