Advertisement
Guest User

Untitled

a guest
Feb 25th, 2020
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.33 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. /*
  4. Brendan Baker
  5. Student Number-->17019052
  6. IoT challenge 1 2020
  7. */
  8. //TODO WE WANT TO CREATE A INCLUDE FOR A STRING TO CHECK THE STATE SUCH AS #include <string> this will be our state.
  9. //TODO
  10. //#include "MicroBit.h"
  11.  
  12. struct node
  13. { //Should be eventually Class node :) so we can can call an instance of which is to be decrypted later on.
  14. char key_value_;
  15. node *left_;
  16. node *right_;
  17.  
  18. node(char key_value) : key_value_(key_value), left_(nullptr), right_(nullptr)
  19. {
  20.  
  21. }
  22. };
  23.  
  24. struct btree
  25. {
  26. node *root_;
  27. btree() : root_(nullptr)
  28. {
  29. }
  30.  
  31. //void checkstate(char dot_or_dash)
  32. // {
  33.  
  34. //CHECK the state of string stored in an arrsy
  35. // }
  36.  
  37. // void insert(char key, int dot_or_dash)
  38. // {
  39. // }
  40.  
  41. char code(const char *str)
  42. {
  43. node *current = root_; //Set the current node to the root
  44.  
  45. for (; *str != '\0'; str++)
  46. {
  47. if (*str == '.')
  48. {
  49. current = current->left_; //If we have a dot then we will shift left
  50. }
  51. else if (*str == '/') //changed was open ended ' '
  52. {
  53. current = current->right_;//Else we'll shift right for a dash
  54. }
  55. }
  56. return current->key_value_;
  57. }
  58. };
  59.  
  60. int main()
  61. {
  62.  
  63. btree morse;
  64.  
  65. //^(No String) node
  66. node *root = new node('^');//random special root declare root (identify)
  67.  
  68. //E
  69. node *dot1 = new node('E');
  70. root->left_ = dot1;
  71.  
  72. //T
  73. node *dash1 = new node('T');
  74. root->right_ = dash1;
  75.  
  76. //I
  77. node *dot1_dot1 = new node('I');
  78. dot1->left_ = dot1_dot1;
  79.  
  80. //A
  81. node *dot1_dash1 = new node('A');
  82. dot1->right_ = dot1_dash1;
  83.  
  84. //R
  85. node *dot1_dash1_dot1 = new node('R');
  86. dot1_dash1->left_ = dot1_dash1_dot1;
  87.  
  88. //L
  89. node *dot1_dash1_dot1_dot1 = new node('L');
  90. dot1_dash1_dot1->left_ = dot1_dash1_dot1_dot1;
  91.  
  92. //W
  93. node *dot1_dash1_dash1 = new node('W');
  94. dot1_dash1->right_ = dot1_dash1_dash1;
  95.  
  96. //P
  97. node *dot1_dash1_dash1_dot1 = new node('P');
  98. dot1_dash1_dash1->left_ = dot1_dash1_dash1_dot1;
  99.  
  100. //J
  101. node *dot1_dash1_dash1_dash1 = new node ('J');
  102. dot1_dash1_dash1->right_ = dot1_dash1_dash1_dash1;
  103.  
  104. //S
  105. node *dot1_dot1_dot1 = new node('S');
  106. dot1_dot1->left_ = dot1_dot1_dot1;
  107.  
  108. //H
  109. node *dot1_dot1_dot1_dot1 = new node ('H');
  110. dot1_dot1_dot1->left_ = dot1_dot1_dot1_dot1;
  111.  
  112. //V
  113. node *dot1_dot1_dot1_dash1 = new node('V');
  114. dot1_dot1_dot1->right_ = dot1_dot1_dot1_dash1;
  115. //U
  116. node *dot1_dot1_dash1 = new node('U');
  117. dot1_dot1->right_ = dot1_dot1_dash1;
  118.  
  119. //F
  120. node *dot1_dot1_dash1_dot1 = new node('F');
  121. dot1_dot1_dash1->left_ = dot1_dot1_dash1_dot1;
  122.  
  123. //M
  124. node * dash1_dash1 = new node('M');
  125. dash1->right_ = dash1_dash1;
  126.  
  127. //O
  128. node * dash1_dash1_dash1 = new node('O');
  129. dash1_dash1->right_ = dash1_dash1_dash1;
  130.  
  131. //G
  132. node * dash1_dash1_dot1 = new node('G');
  133. dash1_dash1->left_ = dash1_dash1_dot1;
  134.  
  135. //Z
  136. node * dash1_dash1_dot1_dot1 = new node('Z');
  137. dash1_dash1_dot1->left_ = dash1_dash1_dot1_dot1;
  138.  
  139. //Q
  140. node * dash1_dash1_dot1_dash1 = new node('Q');
  141. dash1_dash1_dot1->right_ = dash1_dash1_dot1_dash1;
  142.  
  143. //N
  144. node * dash1_dot1 = new node('N');
  145. dash1->left_ = dash1_dot1;
  146.  
  147. //D
  148. node * dash1_dot1_dot1 = new node('D');
  149. dash1_dot1->left_ = dash1_dot1_dot1;
  150.  
  151. //B
  152. node * dash1_dot1_dot1_dot1 = new node('B');
  153. dash1_dot1_dot1->left_ = dash1_dot1_dot1_dot1;
  154.  
  155. //X
  156. node * dash1_dot1_dot1_dash1 = new node('X');
  157. dash1_dot1_dot1->right_ = dash1_dot1_dot1_dash1;
  158.  
  159. //K
  160. node * dash1_dot1_dash1 = new node('K');
  161. dash1_dot1->right_ = dash1_dot1_dash1;
  162.  
  163. //C
  164. node * dash1_dot1_dash1_dot1 = new node('C');
  165. dash1_dot1_dash1->left_ = dash1_dot1_dash1_dot1;
  166.  
  167. //Y
  168. node * dash1_dot1_dash1_dash1 = new node('Y');
  169. dash1_dot1_dash1->right_ = dash1_dot1_dash1_dash1;
  170.  
  171. //1
  172. node * dot1_dash1_dash1_dash1_dash1 = new node('1');
  173. dot1_dash1_dash1_dash1->right_ = dot1_dash1_dash1_dash1_dash1;
  174.  
  175. node * dot1_dot1_dash1_dash1 = new node('!'); //TODO Empty = ^??
  176. dot1_dot1_dash1->right_ = dot1_dot1_dash1_dash1;
  177.  
  178. //2
  179. node * dot1_dot1_dash1_dash1_dash1 = new node('2');
  180. dot1_dot1_dash1_dash1->right_ = dot1_dot1_dash1_dash1_dash1;
  181.  
  182. //3
  183. node * dot1_dot1_dot1_dash1_dash1 = new node('3');
  184. dot1_dot1_dot1_dash1->right_ = dot1_dot1_dot1_dash1_dash1;
  185.  
  186. //4
  187. node * dot1_dot1_dot1_dot1_dash1 = new node('4');
  188. dot1_dot1_dot1_dot1->right_ = dot1_dot1_dot1_dot1_dash1;
  189.  
  190. //5
  191. node * dot1_dot1_dot1_dot1_dot1 = new node('5');
  192. dot1_dot1_dot1_dot1->left_ = dot1_dot1_dot1_dot1_dot1;
  193.  
  194. //6
  195. node * dash1_dot1_dot1_dot1_dot1 = new node('6');
  196. dash1_dot1_dot1_dot1->left_ = dash1_dot1_dot1_dot1_dot1;
  197.  
  198. //7
  199. node * dash1_dash1_dot1_dot1_dot1 = new node ('7');
  200. dash1_dash1_dot1_dot1->left_ = dash1_dash1_dot1_dot1_dot1;
  201.  
  202. //TODO Fake node(empty) for 8
  203. node * dash1_dash1_dash1_dot1 = new node('!');
  204. dash1_dash1_dash1->left_ = dash1_dash1_dash1_dot1;
  205.  
  206. //8
  207. node * dash1_dash1_dash1_dot1_dot1 = new node('8');
  208. dash1_dash1_dash1_dot1->left_ = dash1_dash1_dash1_dot1_dot1;
  209.  
  210. //TODO Fake node(empty) for 9,0
  211. node * dash1_dash1_dash1_dash1 = new node('!');
  212. dash1_dash1_dash1->right_ = dash1_dash1_dash1_dash1;
  213.  
  214. //9
  215. node * dash1_dash1_dash1_dash1_dot1 = new node('9');
  216. dash1_dash1_dash1_dash1->left_ = dash1_dash1_dash1_dash1_dot1;
  217.  
  218. //0
  219. node * dash1_dash1_dash1_dash1_dash1 = new node('0');
  220. dash1_dash1_dash1_dash1->right_ = dash1_dash1_dash1_dash1_dash1;
  221.  
  222.  
  223. //TODO 8,9,0 Will have to create empty offspring
  224.  
  225.  
  226.  
  227.  
  228. morse.root_ = root;
  229.  
  230.  
  231.  
  232. //TODO Testing to see the corresponding outputs
  233.  
  234. printf("%c\n", morse.code(""));
  235. printf("%c\n", morse.code("."));
  236. printf("%c\n", morse.code(".."));
  237. printf("%c\n", morse.code("..."));
  238. printf("%c\n", morse.code("...."));
  239. printf("%c\n", morse.code(".../"));
  240. printf("%c\n", morse.code("../"));
  241. printf("%c\n", morse.code("../."));
  242. printf("%c\n", morse.code("./"));
  243. printf("%c\n", morse.code("./."));
  244. printf("%c\n", morse.code("./.."));
  245. printf("%c\n", morse.code(".//"));
  246. printf("%c\n", morse.code(".//."));
  247. printf("%c\n", morse.code(".///"));
  248. printf("%c\n", morse.code("/"));
  249. printf("%c\n", morse.code("//"));
  250. printf("%c\n", morse.code("///"));
  251. printf("%c\n", morse.code("//."));
  252. printf("%c\n", morse.code("//.."));
  253. printf("%c\n", morse.code("//./"));
  254. printf("%c\n", morse.code("/."));
  255. printf("%c\n", morse.code("/.."));
  256. printf("%c\n", morse.code("/..."));
  257. printf("%c\n", morse.code("/../"));
  258. printf("%c\n", morse.code("/./"));
  259. printf("%c\n", morse.code("/./."));
  260. printf("%c\n", morse.code("/.//"));
  261. printf("%c\n", morse.code(".////"));//1
  262. printf("%c\n", morse.code("..///"));//2
  263. printf("%c\n", morse.code("...//"));//3
  264. printf("%c\n", morse.code("..../"));//4
  265. printf("%c\n", morse.code("....."));//5
  266. printf("%c\n", morse.code("/...."));//6
  267. printf("%c\n", morse.code("//..."));//7
  268. printf("%c\n", morse.code("///.."));//8
  269. printf("%c\n", morse.code("////."));//9
  270. printf("%c\n", morse.code("/////"));//0
  271. std::cout << "Working\n"; //TODO Debug statement
  272. /*
  273. printf("%c\n", morse.code("/...."));//6
  274. printf("%c\n", morse.code("//..."));//7
  275. printf("%c\n", morse.code("///.."));//8
  276. printf("%c\n", morse.code("////."));//9
  277. printf("%c\n", morse.code("/////"));//0
  278.  
  279. */
  280.  
  281. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement