Code cleanup, implement LL_ITER macro

This commit is contained in:
2022-03-28 10:52:16 -07:00
parent 91e2ac1994
commit 8b2a459252
14 changed files with 136 additions and 94 deletions

View File

@ -7,65 +7,65 @@
#include "lfbinarytree.h"
#include "lfmath.h"
void print_ll(List* list) {
for (ListNode* node = list->head; node != NULL; node = node->next) {
printf(" %d", *((int*)node->data));
void print_ll(List *list) {
LL_ITER(list) {
printf(" %d", *((int *) node->data));
}
printf("\n");
}
void test_ll() {
printf("\n--- LIST TEST ---\n");
List* list = malloc(sizeof(List));
List *list = malloc(sizeof(List));
ll_init(list, NULL);
int i = 1;
int j = 2;
int k = 4;
ll_ins_next(list, list->head, (void*)&i);
ll_ins_next(list, list->tail, (void*)&j);
ll_ins_next(list, list->tail, (void*)&k);
ll_ins_next(list, list->head, (void *) &i);
ll_ins_next(list, list->tail, (void *) &j);
ll_ins_next(list, list->tail, (void *) &k);
printf("List: ");
print_ll(list);
void* data;
void *data;
ll_remove_next(list, list->head, &data);
printf("List: ");
print_ll(list);
printf("Removed: %d\n", *((int*)data));
printf("Removed: %d\n", *((int *) data));
ll_destroy(list);
free(list);
}
int int_match(const void* a, const void* b) {
return *((int*)a) == *((int*)b);
int int_match(const void *a, const void *b) {
return *((int *) a) == *((int *) b);
}
void test_set() {
printf("\n--- SET TEST ---\n");
Set* set = malloc(sizeof(Set));
Set *set = malloc(sizeof(Set));
set_init(set, int_match, NULL);
int i = 1;
int j = 2;
int k = 2;
set_insert(set, (void*)&i);
set_insert(set, (void*)&j);
set_insert(set, (void*)&k);
set_insert(set, (void *) &i);
set_insert(set, (void *) &j);
set_insert(set, (void *) &k);
int i2 = 1;
int j2 = 4;
Set* set2 = malloc(sizeof(Set));
Set *set2 = malloc(sizeof(Set));
set_init(set2, int_match, NULL);
set_insert(set2, (void*)&i2);
set_insert(set2, (void*)&j2);
set_insert(set2, (void *) &i2);
set_insert(set2, (void *) &j2);
printf("Set 1:");
print_ll(set);
@ -74,9 +74,9 @@ void test_set() {
print_ll(set2);
printf("\n");
Set* set_u = malloc(sizeof(Set));
Set* set_i = malloc(sizeof(Set));
Set* set_d = malloc(sizeof(Set));
Set *set_u = malloc(sizeof(Set));
Set *set_i = malloc(sizeof(Set));
Set *set_d = malloc(sizeof(Set));
set_union(set_u, set, set2);
printf("Union:");
@ -113,10 +113,10 @@ void test_stack() {
printf("Stack size: %lu\n", stack->size);
int *p = NULL;
stack_pop(stack, (void **)&p);
stack_pop(stack, (void **) &p);
printf("b = %d\n", *p);
stack_pop(stack, (void **)&p);
stack_pop(stack, (void **) &p);
printf("a = %d\n", *p);
printf("Stack size: %lu\n", stack->size);