typedef struct NOIDEA_linkedlist
{
	void * data;
	struct NOIDEA_linkedlist * next;
}NOIDEA_linkedlist;

typedef struct NOIDEA_structlist
{
	int lenght;
	NOIDEA_linkedlist * head;
	NOIDEA_linkedlist * tail;
}NOIDEA_structlist;

void NOIDEA_structlist_push(NOIDEA_structlist * noidea_list, void * data, void*ptr)
void * NOIDEA_structlist_pop(NOIDEA_structlist * noidea_list, void noidea_free(void*))
void NOIDEA_structlist_append(NOIDEA_structlist * noidea_list, void * data, void * ptr)
void * NOIDEA_structlist_eject(NOIDEA_structlist * noidea_list, void noidea_free(void*))
int NOIDEA_structlist_lenght(NOIDEA_structlist * noidea_list)
