Certainly, here's the content in a single Markdown file:
# Tasks
## 0. New node (mandatory)
Write a function that creates a binary tree node.
**Prototype:**
```c
binary_tree_t *binary_tree_node(binary_tree_t *parent, int value);
parent
is a pointer to the parent node of the node to create.value
is the value to put in the new node.- When created, a node does not have any child.
- Your function must return a pointer to the new node or
NULL
on failure.
Example:
#include <stdlib.h>
#include "binary_trees.h"
int main(void)
{
binary_tree_t *root;
root = binary_tree_node(NULL, 98);
root->left = binary_tree_node(root, 12);
root->left->left = binary_tree_node(root->left, 6);
root->left->right = binary_tree_node(root->left, 16);
root->right = binary_tree_node(root, 402);
root->right->left = binary_tree_node(root->right, 256);
root->right->right = binary_tree_node(root->right, 512);
binary_tree_print(root);
return (0);
}
Output:
.-------(098)-------.
.--(012)--. .--(402)--.
(006) (016) (256) (512)
To compile and run the code:
gcc -Wall -Wextra -Werror -pedantic binary_tree_print.c 0-main.c 0-binary_tree_node.c -o 0-node
./0-node