#include #include #include typedef struct list_t { uint8_t data; struct list_t *next; } list_t; void list_init(struct list_t *list) { list->data = 0; list->next = NULL; } void list_add(struct list_t *list, uint8_t data) { struct list_t *p = NULL; p = list; while (p->next != NULL) { p = p->next; if (p->data == data) { return; } } p->next = (struct list_t *)malloc(sizeof(struct list_t)); p->next->data = data; p->next->next = NULL; return; } void list_print(struct list_t *list) { struct list_t *p = NULL; p = list; while (p->next != NULL) { printf("%02d\n", p->data); p = p->next; if (p->next == NULL) { printf("%02d\n", p->data); break; } } } void list_free(struct list_t *list) { struct list_t *p = NULL; p = list; while (p->next != NULL) { p = p->next; free(p->next); p->next = NULL; if (p->next == NULL) { break; } } } void list_demo(void) { struct list_t list; list_init(&list); for(uint32_t i = 0; i < 10; ++i) { list_add(&list, i); } list_print(&list); } void main(int arg, char *argv[]) { #if 0 uint32_t i = 0; for (i = 0; i < 10; ++i) { printf("%02d\n", i); } printf("\n"); printf("Hello World!\n"); #else // struct list_t list; // list_init(&list); // list_add(&list, 1); // list_add(&list, 2); // list_add(&list, 3); // list_add(&list, 4); // list_print(&list); list_demo(); #endif }