Example #1
0
/*------------------------------------------------------------------------------------------------------------
   delete_list()
        Funcao que utiliza a funcao remove_end para deletar todos os nos da lista menos a sentinela, depois
	deleta a sentinela, libera a memoria alocada pela lista e faz com que o ponteiro aponte para NULL, o
	que indica lista nao criada
        - Parametros
          LIST** : endereco da lista a ser apagada
        - Retorno
          void
*/
void delete_list(LIST **list){
	if(list != NULL && (*list) != NULL){
		// Enquanto n houver so a sentinela(list->size == 0), remove do fim
		while((*list)->size > 0) remove_end(*list);
		delete_node( &((*list)->sentry) );
		free(*list);
		(*list) = NULL;
	}
}
Example #2
0
/*------------------------------------------------------------------------------------------------------------
   get_list()
        Funcao que cria uma lista usando create_list() e le inteiros da stream de dados ate o fim do arquivo,
	inserindo nos no final da lista com ids iguais aos inteiros lidos. Caso haja erro na criacao, retorna NULL
        - Parametros
          FILE* : stream de dados a ser lida
        - Retorno
          LIST* : lista criada
*/
LIST *get_list(FILE *stream){
	LIST *list = create_list();

	if(list != NULL){
		int aux;

		while(fscanf(stream, "%d", &aux) != EOF){
			insert_end(list, aux);
		}
		// Precaucao
		if(list->last == NULL){
			remove_end(list);
		}

	}

	return list;
}
Example #3
0
int main(void) {
	//struct list_node *list,*list2;
    struct list_node *list;
	list=NULL;

	print(list);

    printf("1\n");
	add_beg(&list,1);
	print(list);
    remove_beg(&list);
	print(list);

    printf("2\n");
	add_end(&list,1);
	print(list);
    remove_beg(&list);
	print(list);

    printf("3\n");  
	add_beg(&list,1);
	print(list);
    remove_beg(&list);
    //remove_end(&list);
	print(list);

    printf("4\n");
	add_end(&list,1);
	print(list);
    remove_beg(&list);
    //remove_end(&list);
	print(list);

    printf("5\n");
	add_beg(&list,1);
    print(list);
    add_beg(&list,2);
	print(list);
    remove_beg(&list);
	print(list);
    remove_beg(&list);
	print(list);

    printf("6\n");
	add_end(&list,1);
	print(list);
	add_end(&list,3);
	print(list);
	add_beg(&list,1);
	print(list);
    remove_beg(&list);
	print(list);
    remove_end(&list);
	print(list);
	add_end(&list,3);
	print(list);    
    remove_end(&list);
	print(list);
	add_end(&list,3);
	print(list);
    remove_beg(&list);
	print(list);

    remove_end(&list);
	print(list);
    remove_end(&list);
	print(list);
    remove_beg(&list);
	print(list);

	return 0;
}