diff --git a/C-RK/C-RK-Week2/llist.c b/C-RK/C-RK-Week2/llist.c index db40e69..52b32f0 100644 --- a/C-RK/C-RK-Week2/llist.c +++ b/C-RK/C-RK-Week2/llist.c @@ -139,4 +139,35 @@ void clear() printf("De gehele lijst in gecleared!\n"); } +int length() +{ + int idx = 0; + struct node *p = pStart; + + for (; NULL != p->next; p = p->next) + { + idx++; + } + + return idx; +} + +int exists(int data) +{ + int idx = 0; + struct node *p = pStart; + + for (; NULL != p->next; p = p->next) + { + if (p->data == data) + { + return idx; + } + + idx++; + } + + return -1; +} + diff --git a/C-RK/C-RK-Week2/llist.h b/C-RK/C-RK-Week2/llist.h index 0047d20..d5695b9 100644 --- a/C-RK/C-RK-Week2/llist.h +++ b/C-RK/C-RK-Week2/llist.h @@ -13,5 +13,6 @@ int add(int data, int begin); int addPos(int data, int positie); void show(); void clear(); - +int length(); +int exists(int data); #endif diff --git a/C-RK/C-RK-Week2/main.c b/C-RK/C-RK-Week2/main.c index 8f01315..e9a4e32 100644 --- a/C-RK/C-RK-Week2/main.c +++ b/C-RK/C-RK-Week2/main.c @@ -42,6 +42,10 @@ int main() printf("Showing data...\n"); show(); + printf("Length of list: %d\n", length()); + printf("Position of 22 in list: %d\n", exists(22)); + printf("Position of 40 in list: %d\n", exists(40)); + printf("Clearing data...\n"); clear();