42 Exam Rank 03 ⚡ Tested & Working

Phone / Whatsapp +256 727 404532

Phone / Whatsapp +92 345 3635990

struct s_btree *left; struct s_btree *right; void *item; t_btree;

Total: 6/8. Need 2 more points.

if (!*root) *root = ft_btree_create_node(item); return; if (cmpf(item, (*root)->item) < 0) ft_btree_insert_data(&(*root)->left, item, cmpf); else ft_btree_insert_data(&(*root)->right, item, cmpf);

| Mistake | Consequence | Prevention | |---------|------------|------------| | Forgetting to include #include <stdlib.h> | Implicit function declaration → Moulinette fails | Write includes at top | | Memory leak in list remove_if | Fails strict test | Always free removed node | | Not handling NULL input | Segmentation fault in tests | Check if (!list) return | | Using recursion for deep lists | Stack overflow (not tested but bad style) | Use iteration for long lists | | Modifying original pointer without pointer-to-pointer | Head lost | Use t_list ** when head can change | | ft_itoa_base INT_MIN bug | Wrong output for -2147483648 | Special case: convert to unsigned | | Not checking base bounds | Undefined behavior → fails | if (base < 2 \|\| base > 16) return (NULL); | Recursion Cheat Sheet for Rank 03 Pattern 1: Traversal (no return value) void traverse(t_btree *node)

5 / \ 3 8 / \ \ 1 4 9 Trace ft_btree_apply_infix (left-root-right). Write the output before running code. Give yourself 20 minutes per exercise. If you exceed, look at the solution, understand it, then redo from scratch. 4. Understand the typedefs typedef struct s_list

if (!node) return; // do something with node traverse(node->left); traverse(node->right);

t_btree *insert(t_btree *node, void *item, int (*cmp)())

0%

42 Exam Rank 03 ⚡ Tested & Working

struct s_btree *left; struct s_btree *right; void *item; t_btree;

Total: 6/8. Need 2 more points.

if (!*root) *root = ft_btree_create_node(item); return; if (cmpf(item, (*root)->item) < 0) ft_btree_insert_data(&(*root)->left, item, cmpf); else ft_btree_insert_data(&(*root)->right, item, cmpf);

| Mistake | Consequence | Prevention | |---------|------------|------------| | Forgetting to include #include <stdlib.h> | Implicit function declaration → Moulinette fails | Write includes at top | | Memory leak in list remove_if | Fails strict test | Always free removed node | | Not handling NULL input | Segmentation fault in tests | Check if (!list) return | | Using recursion for deep lists | Stack overflow (not tested but bad style) | Use iteration for long lists | | Modifying original pointer without pointer-to-pointer | Head lost | Use t_list ** when head can change | | ft_itoa_base INT_MIN bug | Wrong output for -2147483648 | Special case: convert to unsigned | | Not checking base bounds | Undefined behavior → fails | if (base < 2 \|\| base > 16) return (NULL); | Recursion Cheat Sheet for Rank 03 Pattern 1: Traversal (no return value) void traverse(t_btree *node)

5 / \ 3 8 / \ \ 1 4 9 Trace ft_btree_apply_infix (left-root-right). Write the output before running code. Give yourself 20 minutes per exercise. If you exceed, look at the solution, understand it, then redo from scratch. 4. Understand the typedefs typedef struct s_list

if (!node) return; // do something with node traverse(node->left); traverse(node->right);

t_btree *insert(t_btree *node, void *item, int (*cmp)())