Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- /*
- Brendan Baker
- Student Number-->17019052
- IoT challenge 1 2020
- */
- //TODO WE WANT TO CREATE A INCLUDE FOR A STRING TO CHECK THE STATE SUCH AS #include <string> this will be our state.
- //TODO
- //#include "MicroBit.h"
- struct node
- { //Should be eventually Class node :) so we can can call an instance of which is to be decrypted later on.
- char key_value_;
- node *left_;
- node *right_;
- node(char key_value) : key_value_(key_value), left_(nullptr), right_(nullptr)
- {
- }
- };
- struct btree
- {
- node *root_;
- btree() : root_(nullptr)
- {
- }
- //void checkstate(char dot_or_dash)
- // {
- //CHECK the state of string stored in an arrsy
- // }
- // void insert(char key, int dot_or_dash)
- // {
- // }
- char code(const char *str)
- {
- node *current = root_; //Set the current node to the root
- for (; *str != '\0'; str++)
- {
- if (*str == '.')
- {
- current = current->left_; //If we have a dot then we will shift left
- }
- else if (*str == '/') //changed was open ended ' '
- {
- current = current->right_;//Else we'll shift right for a dash
- }
- }
- return current->key_value_;
- }
- };
- int main()
- {
- btree morse;
- //^(No String) node
- node *root = new node('^');//random special root declare root (identify)
- //E
- node *dot1 = new node('E');
- root->left_ = dot1;
- //T
- node *dash1 = new node('T');
- root->right_ = dash1;
- //I
- node *dot1_dot1 = new node('I');
- dot1->left_ = dot1_dot1;
- //A
- node *dot1_dash1 = new node('A');
- dot1->right_ = dot1_dash1;
- //R
- node *dot1_dash1_dot1 = new node('R');
- dot1_dash1->left_ = dot1_dash1_dot1;
- //L
- node *dot1_dash1_dot1_dot1 = new node('L');
- dot1_dash1_dot1->left_ = dot1_dash1_dot1_dot1;
- //W
- node *dot1_dash1_dash1 = new node('W');
- dot1_dash1->right_ = dot1_dash1_dash1;
- //P
- node *dot1_dash1_dash1_dot1 = new node('P');
- dot1_dash1_dash1->left_ = dot1_dash1_dash1_dot1;
- //J
- node *dot1_dash1_dash1_dash1 = new node ('J');
- dot1_dash1_dash1->right_ = dot1_dash1_dash1_dash1;
- //S
- node *dot1_dot1_dot1 = new node('S');
- dot1_dot1->left_ = dot1_dot1_dot1;
- //H
- node *dot1_dot1_dot1_dot1 = new node ('H');
- dot1_dot1_dot1->left_ = dot1_dot1_dot1_dot1;
- //V
- node *dot1_dot1_dot1_dash1 = new node('V');
- dot1_dot1_dot1->right_ = dot1_dot1_dot1_dash1;
- //U
- node *dot1_dot1_dash1 = new node('U');
- dot1_dot1->right_ = dot1_dot1_dash1;
- //F
- node *dot1_dot1_dash1_dot1 = new node('F');
- dot1_dot1_dash1->left_ = dot1_dot1_dash1_dot1;
- //M
- node * dash1_dash1 = new node('M');
- dash1->right_ = dash1_dash1;
- //O
- node * dash1_dash1_dash1 = new node('O');
- dash1_dash1->right_ = dash1_dash1_dash1;
- //G
- node * dash1_dash1_dot1 = new node('G');
- dash1_dash1->left_ = dash1_dash1_dot1;
- //Z
- node * dash1_dash1_dot1_dot1 = new node('Z');
- dash1_dash1_dot1->left_ = dash1_dash1_dot1_dot1;
- //Q
- node * dash1_dash1_dot1_dash1 = new node('Q');
- dash1_dash1_dot1->right_ = dash1_dash1_dot1_dash1;
- //N
- node * dash1_dot1 = new node('N');
- dash1->left_ = dash1_dot1;
- //D
- node * dash1_dot1_dot1 = new node('D');
- dash1_dot1->left_ = dash1_dot1_dot1;
- //B
- node * dash1_dot1_dot1_dot1 = new node('B');
- dash1_dot1_dot1->left_ = dash1_dot1_dot1_dot1;
- //X
- node * dash1_dot1_dot1_dash1 = new node('X');
- dash1_dot1_dot1->right_ = dash1_dot1_dot1_dash1;
- //K
- node * dash1_dot1_dash1 = new node('K');
- dash1_dot1->right_ = dash1_dot1_dash1;
- //C
- node * dash1_dot1_dash1_dot1 = new node('C');
- dash1_dot1_dash1->left_ = dash1_dot1_dash1_dot1;
- //Y
- node * dash1_dot1_dash1_dash1 = new node('Y');
- dash1_dot1_dash1->right_ = dash1_dot1_dash1_dash1;
- //1
- node * dot1_dash1_dash1_dash1_dash1 = new node('1');
- dot1_dash1_dash1_dash1->right_ = dot1_dash1_dash1_dash1_dash1;
- node * dot1_dot1_dash1_dash1 = new node('!'); //TODO Empty = ^??
- dot1_dot1_dash1->right_ = dot1_dot1_dash1_dash1;
- //2
- node * dot1_dot1_dash1_dash1_dash1 = new node('2');
- dot1_dot1_dash1_dash1->right_ = dot1_dot1_dash1_dash1_dash1;
- //3
- node * dot1_dot1_dot1_dash1_dash1 = new node('3');
- dot1_dot1_dot1_dash1->right_ = dot1_dot1_dot1_dash1_dash1;
- //4
- node * dot1_dot1_dot1_dot1_dash1 = new node('4');
- dot1_dot1_dot1_dot1->right_ = dot1_dot1_dot1_dot1_dash1;
- //5
- node * dot1_dot1_dot1_dot1_dot1 = new node('5');
- dot1_dot1_dot1_dot1->left_ = dot1_dot1_dot1_dot1_dot1;
- //6
- node * dash1_dot1_dot1_dot1_dot1 = new node('6');
- dash1_dot1_dot1_dot1->left_ = dash1_dot1_dot1_dot1_dot1;
- //7
- node * dash1_dash1_dot1_dot1_dot1 = new node ('7');
- dash1_dash1_dot1_dot1->left_ = dash1_dash1_dot1_dot1_dot1;
- //TODO Fake node(empty) for 8
- node * dash1_dash1_dash1_dot1 = new node('!');
- dash1_dash1_dash1->left_ = dash1_dash1_dash1_dot1;
- //8
- node * dash1_dash1_dash1_dot1_dot1 = new node('8');
- dash1_dash1_dash1_dot1->left_ = dash1_dash1_dash1_dot1_dot1;
- //TODO Fake node(empty) for 9,0
- node * dash1_dash1_dash1_dash1 = new node('!');
- dash1_dash1_dash1->right_ = dash1_dash1_dash1_dash1;
- //9
- node * dash1_dash1_dash1_dash1_dot1 = new node('9');
- dash1_dash1_dash1_dash1->left_ = dash1_dash1_dash1_dash1_dot1;
- //0
- node * dash1_dash1_dash1_dash1_dash1 = new node('0');
- dash1_dash1_dash1_dash1->right_ = dash1_dash1_dash1_dash1_dash1;
- //TODO 8,9,0 Will have to create empty offspring
- morse.root_ = root;
- //TODO Testing to see the corresponding outputs
- printf("%c\n", morse.code(""));
- printf("%c\n", morse.code("."));
- printf("%c\n", morse.code(".."));
- printf("%c\n", morse.code("..."));
- printf("%c\n", morse.code("...."));
- printf("%c\n", morse.code(".../"));
- printf("%c\n", morse.code("../"));
- printf("%c\n", morse.code("../."));
- printf("%c\n", morse.code("./"));
- printf("%c\n", morse.code("./."));
- printf("%c\n", morse.code("./.."));
- printf("%c\n", morse.code(".//"));
- printf("%c\n", morse.code(".//."));
- printf("%c\n", morse.code(".///"));
- printf("%c\n", morse.code("/"));
- printf("%c\n", morse.code("//"));
- printf("%c\n", morse.code("///"));
- printf("%c\n", morse.code("//."));
- printf("%c\n", morse.code("//.."));
- printf("%c\n", morse.code("//./"));
- printf("%c\n", morse.code("/."));
- printf("%c\n", morse.code("/.."));
- printf("%c\n", morse.code("/..."));
- printf("%c\n", morse.code("/../"));
- printf("%c\n", morse.code("/./"));
- printf("%c\n", morse.code("/./."));
- printf("%c\n", morse.code("/.//"));
- printf("%c\n", morse.code(".////"));//1
- printf("%c\n", morse.code("..///"));//2
- printf("%c\n", morse.code("...//"));//3
- printf("%c\n", morse.code("..../"));//4
- printf("%c\n", morse.code("....."));//5
- printf("%c\n", morse.code("/...."));//6
- printf("%c\n", morse.code("//..."));//7
- printf("%c\n", morse.code("///.."));//8
- printf("%c\n", morse.code("////."));//9
- printf("%c\n", morse.code("/////"));//0
- std::cout << "Working\n"; //TODO Debug statement
- /*
- printf("%c\n", morse.code("/...."));//6
- printf("%c\n", morse.code("//..."));//7
- printf("%c\n", morse.code("///.."));//8
- printf("%c\n", morse.code("////."));//9
- printf("%c\n", morse.code("/////"));//0
- */
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement