Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import provided.BinaryTree;
- public class Morse {
- static final BinaryTree tree;
- static {
- BinaryTree h = new BinaryTree("h");
- BinaryTree v = new BinaryTree("v");
- BinaryTree f = new BinaryTree("f");
- BinaryTree ü = new BinaryTree ("ü");
- BinaryTree l = new BinaryTree ("l");
- BinaryTree ä = new BinaryTree ("ä");
- BinaryTree p = new BinaryTree ("p");
- BinaryTree j = new BinaryTree ("j");
- BinaryTree b = new BinaryTree ("b");
- BinaryTree x = new BinaryTree ("x");
- BinaryTree c = new BinaryTree ("c");
- BinaryTree y = new BinaryTree ("y");
- BinaryTree z = new BinaryTree ("z");
- BinaryTree q = new BinaryTree ("q");
- BinaryTree ö = new BinaryTree ("ö");
- BinaryTree ch = new BinaryTree ("ch");
- BinaryTree s = new BinaryTree ("s", h, v);
- BinaryTree u = new BinaryTree ("u", f, ü);
- BinaryTree r = new BinaryTree ("r", l, ä);
- BinaryTree w = new BinaryTree ("w", p, j);
- BinaryTree d = new BinaryTree ("d", b, x);
- BinaryTree k = new BinaryTree ("k", c, y);
- BinaryTree g = new BinaryTree ("g", z, q);
- BinaryTree o = new BinaryTree ("o", ö, ch);
- BinaryTree i = new BinaryTree ("i", s, u);
- BinaryTree a = new BinaryTree ("a", r, w);
- BinaryTree n = new BinaryTree ("n", d, k);
- BinaryTree m = new BinaryTree ("m", g, o);
- BinaryTree e = new BinaryTree ("e", i, a);
- BinaryTree t = new BinaryTree ("t", n, m);
- tree = new BinaryTree(" ", e, t);
- }
- public static String encode(String code) {
- String encoded = "";
- return encoded;
- }
- public static String decode(String code) {
- String decoded = "";
- BinaryTree node = tree;
- for(int i = 0; i < code.length() - 1; i++) {
- char c = code.charAt(i);
- if(c == ' ') {
- decoded += c;
- continue;
- }
- BinaryTree child = c == '-' ? node.getRightTree() : c == '.' ? node.getLeftTree() : null;
- if(child != null)
- node = child;
- else
- break;
- if(node.getObject() != null)
- decoded += node.getObject();
- }
- return decoded;
- }
- public static void main(String[] args) {
- String usage = "Usage: <main> [encode/decode] <input>";
- if(args.length < 1) {
- System.out.println(usage);
- return;
- }
- for(int i = 0; i < args.length; i++) {
- switch(args[i]) {
- case "--encode":
- case "-e":
- System.out.println(encode(args[i + 1]));
- break;
- case "--decode":
- case "-d":
- System.out.println(decode(args[i + 1]));
- break;
- case "--help":
- case "-h":
- case "-?":
- System.out.println(usage);
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement