diff --git a/src/morse.c b/src/morse.c index 97867214d98d53ab9f3c9fef84acb0aedc12a7b3..efd6bef0e566ec8e13eace19e2fbc88838937a9d 100644 --- a/src/morse.c +++ b/src/morse.c @@ -40,7 +40,32 @@ struct node_t * createTree(char * path){ return NULL; } -struct node_t * pushTree(struct node_t * tree, char letter, char * code){} +struct node_t * pushTree(struct node_t * tree, char letter, char * code){ + if (code != NULL) { + if (code[0] != '\0') { + if (code[0] == '.') { + if (tree->left == NULL) { + tree->left = createNode('?'); + } + return pushTree(tree->left, letter, code + 1); + } + else if (code[0] == '-') { + if (tree->right == NULL) { + tree->right = createNode('?'); + } + return pushTree(tree->right, letter, code + 1); + } else { + printf("Erreur de format !!\n"); + return NULL; + } + } else { + tree->letter = letter; + return tree; + } + } else { + return NULL; + } +} void printTree(struct node_t * tree, int depth){}