hi
Diff: binTree.cpp
- Revision:
- 1:52a1fd1e7193
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/binTree.cpp Mon Mar 04 22:54:07 2019 +0000 @@ -0,0 +1,86 @@ +#include "binTree.h" +#include <string.h> + +using std::string; +//constructor that makes root a new node for insertion. +binTree::binTree() { + root = new node; +//root.dot = NULL; +//root.dash = NULL; + + + +} + + +//Function to fill the tree, public facing as developers don't need to know root. +void binTree::insert(char inputC, string morse) { + + node *r = this->root; + + + //loop going through length of morse and seeing if dash or dot for where to add new nodes. + for (int i = 0; i < morse.length(); i++) { + // assert(r); + if (morse[i] == '-') { + if (r->dash == NULL) { + r->dash = new node; + } + r = r->dash; + } + else if (morse[i] == '.') { + if (r->dot == NULL) { + r->dot = new node; + } + r = r->dot; + } + + + } + insert(inputC, morse, r); + + //else { + + //} +} + + +//sets char and string in the specific node designated at r. +void binTree::insert(char inputC, string morse, node * r) { + + r->inputC = inputC; + r->morse = morse; +} + +//search function that traverses down the tree till it finds the coresponding morse, then returns the alphabetical value stored in that node. + +char binTree::tFind(node * r, string morse) +{ + if (r != NULL){ + for (int i = 0; i < morse.length(); i++) { +//assert(r); + if (morse[i] == '-') { + //these if statements check to see whether there's actually any data at that node, and if not, then it exits the function. + if (r->dash == NULL){ + exit(0); + } + else { + r = r->dash; + } + + } + else if (morse[i] == '.') { + if (r->dot == NULL){ + } + else { + r = r->dot; + } + + } + } + } + else{ + + } + return r->inputC; +} \ No newline at end of file