diff options
| author | mo khan <mo.khan@gmail.com> | 2020-07-11 16:43:04 -0600 |
|---|---|---|
| committer | mo khan <mo.khan@gmail.com> | 2020-07-11 16:43:04 -0600 |
| commit | 705dc38744938c0e5eff0d6b9276c67da3a3b966 (patch) | |
| tree | 4b4bde18adde1cc011b62c7fed9bfdf426afefba /src/02/01/binary_tree.c | |
| parent | 1efedbdd9f040810ebe7ff63f736e863c36ac82a (diff) | |
Complete preorder traversal of a binary tree
Diffstat (limited to 'src/02/01/binary_tree.c')
| -rw-r--r-- | src/02/01/binary_tree.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/02/01/binary_tree.c b/src/02/01/binary_tree.c new file mode 100644 index 0000000..c0f3f09 --- /dev/null +++ b/src/02/01/binary_tree.c @@ -0,0 +1,23 @@ +#include "binary_tree.h" +#include <stdlib.h> + +Node *initialize(int data) { + Node *item = malloc(sizeof(Node)); + item->data = data; + item->left = NULL; + item->right = NULL; + return item; +} + +void preorder_next(Node *node, Visitor visitor) { + if (!node) + return; + + visitor(node); + preorder_next(node->left, visitor); + preorder_next(node->right, visitor); +} + +void destroy(Node *head) { + free(head); +} |
