Exemplo n.º 1
0
void libera_lista(TLS *l){
        if(!l) return;
        if(l->prox)
        libera_lista(l->prox);
        free(l->info);
        free(l);
}
Exemplo n.º 2
0
int main(){

    setlocale(LC_ALL, "Portuguese");

    Lista *li;

    li = cria_Lista();
    menu(li);
    libera_lista(li);

    return 0;
}
Exemplo n.º 3
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);
}
Exemplo n.º 4
0
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);
}
Exemplo n.º 5
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;
}
Exemplo n.º 6
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);

}
Exemplo n.º 7
0
void libera_grafo(Grafo* grafo){
	libera_lista(grafo);
	free(grafo->lista);
	free(grafo);
}