void libera_lista(TLS *l){ if(!l) return; if(l->prox) libera_lista(l->prox); free(l->info); free(l); }
int main(){ setlocale(LC_ALL, "Portuguese"); Lista *li; li = cria_Lista(); menu(li); libera_lista(li); return 0; }
void libera(Hash *h) { int i; for ( i = 0 ; i < h->limite; i++) { if (h->tabela[i] != NULL) { Listagen* l = h->tabela[i]; libera_lista(l); //free(h->tabela[i]); } } free(h->tabela); }
int main () { char ch; no = si = 0x00; do { libera_lista(); ch = menu(); switch(ch) { case 'i': introduce(); break; case 'p': pregunta(); break; case 's': salva(); break; case 'c': carga(); break; } } while (ch != 'x'); return (0); }
/* função principal do programa */ int main (int argc, char *argv[]){ char *texto, opcao; /* crio uma string para armazenar cada palavra do texto */ node *head; /* crio um apontador para marcar o começo da lista */ int qtd_impressos = 0, sensitive = 0; /* laço que verifica se há algum parâmetro enviado na chamada do programa */ while((opcao = getopt(argc, argv, "n:I")) != -1){ switch(opcao){ case 'I': /* caso o insensitive case for ativado */ sensitive = 1; break; case 'n': /* caso há um limite nas impressões */ qtd_impressos = atoi(optarg); break; } } texto = malloc (20 * sizeof(char)); /* aloco espaço para o texto */ head = malloc (sizeof(node)); /* aloco espaço para o node */ head->qtd = 0; /* inicializo o valor da variável com 0 */ head->next = NULL; /* o next do node aponta para o nulo */ printf("\n\tEXERCICIO PROGRAMA 1 - MAC0323 ESTRUTURA DE DADOS\n\n\n"); /* loop que lerá uma palavra por vez */ while (scanf("%s", texto) != EOF){ verifica_palavra(texto, sensitive); /* faço a verificação da pontuação */ insere_lista(texto, head); /* insiro na lista */ } head->next = lmergesort_alfabetica(head->next); /* faço o primeiro mergesort para ordenar em ordem alfabética */ contabiliza_strings(head); /* faço a contagem das strings */ head->next = lmergesort_numerico(head->next); /* faço o segundo mergesort para ordenar em ordem numérica */ imprime_lista(head, qtd_impressos); /*imprimo a lista final */ libera_lista(head);/* libero a lista */ /* libero a minha célula usada como cabeça */ free(head); return 0; }
/********************************************* * Funcao principal *********************************************/ int main(){ int opcao; unsigned int id_remover; Carro carro; Lista *lista = cria_lista(); limpa_tela(); // Cria uns carros estaticos, to cansado de ficar digitando carro = cria_carro_estatico(1, "Gol", 2009, "Vermelho", 15000); add_item_lista(lista, carro); carro = cria_carro_estatico(2, "Palio", 2004, "Prata", 13000); add_item_lista(lista, carro); carro = cria_carro_estatico(3, "Strada", 2008, "Preto", 15000); add_item_lista(lista, carro); do { mostra_menu(&opcao); if(opcao > 0 && opcao < 5){ switch(opcao){ case 1: carro = cria_carro(); add_item_lista(lista, carro); break; case 2: id_remover = remove_carro(); remove_item_lista(lista, id_remover); break; case 3: imprime_lista(lista); break; } } } while(opcao != 4); libera_lista(lista); }
void libera_grafo(Grafo* grafo){ libera_lista(grafo); free(grafo->lista); free(grafo); }