generate Tree
This commit is contained in:
parent
12825d2a6c
commit
a8d81fa9a4
Binary file not shown.
|
@ -0,0 +1,13 @@
|
|||
#BlueJ class context
|
||||
comment0.target=MorseTree
|
||||
comment1.params=
|
||||
comment1.target=void\ MorseTree()
|
||||
comment2.params=tree\ morse
|
||||
comment2.target=void\ generateTree(BinaryTree,\ java.lang.String)
|
||||
comment3.params=
|
||||
comment3.target=void\ printHirarchical()
|
||||
comment4.params=pRoot\ xOff
|
||||
comment4.target=void\ printHirarchical(BinaryTree,\ int)
|
||||
comment5.params=off
|
||||
comment5.target=void\ printOffset(int)
|
||||
numComments=6
|
|
@ -0,0 +1,92 @@
|
|||
|
||||
public class MorseTree {
|
||||
|
||||
BinaryTree<DecisionNode> tree;
|
||||
|
||||
public static final String[][] chars = {
|
||||
{"A", ".-"},
|
||||
{"B", "-..."},
|
||||
{"C", "-.-."},
|
||||
{"D", "-.."},
|
||||
{"E", "."},
|
||||
{"F", "..-."},
|
||||
{"G", "--."},
|
||||
{"H", "...."},
|
||||
{"I", ".."},
|
||||
{"J", ".---"},
|
||||
{"K", "-.-"},
|
||||
{"L", ".-.."},
|
||||
{"M", "--"},
|
||||
{"N", "-."},
|
||||
{"O", "---"},
|
||||
{"P", ".--."},
|
||||
{"Q", "--.-"},
|
||||
{"R", ".-."},
|
||||
{"S", "..."},
|
||||
{"T", "-"},
|
||||
{"U", "..-"},
|
||||
{"V", "...-"},
|
||||
{"W", ".--"},
|
||||
{"X", "-..-"},
|
||||
{"Y", "-.--"},
|
||||
{"Z", "--.."}
|
||||
};
|
||||
|
||||
public void MorseTree() {
|
||||
|
||||
tree = new BinaryTree<>();
|
||||
generateTree(tree, "");
|
||||
|
||||
}
|
||||
|
||||
public void generateTree(BinaryTree<DecisionNode> tree, String morse) {
|
||||
String leftMorse = morse + ".";
|
||||
String rightMorse = morse + "-";
|
||||
for (int i = 0; i < chars.length; i++) {
|
||||
if (chars[i][1].equals(leftMorse)) {
|
||||
BinaryTree<DecisionNode> leftTree = new BinaryTree<>();
|
||||
leftTree.setContent(new Decision(chars[i][0], "."));
|
||||
generateTree(leftTree, leftMorse);
|
||||
tree.setLeftTree(leftTree);
|
||||
} else if (chars[i][1].equals(rightMorse)) {
|
||||
BinaryTree<DecisionNode> rightTree = new BinaryTree<>();
|
||||
rightTree.setContent(new Decision(chars[i][0], "."));
|
||||
generateTree(rightTree, rightMorse);
|
||||
tree.setRightTree(rightTree);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void printHirarchical() {
|
||||
printHirarchical(tree, 0);
|
||||
}
|
||||
|
||||
public void printHirarchical(BinaryTree<DecisionNode> pRoot, int xOff) {
|
||||
if (pRoot.getContent() == null) {
|
||||
xOff--;
|
||||
return;
|
||||
}
|
||||
if (pRoot.getLeftTree() != null) {
|
||||
printOffset(xOff);
|
||||
System.out.println(pRoot.getContent());
|
||||
xOff++;
|
||||
printHirarchical(pRoot.getLeftTree(), xOff);
|
||||
}
|
||||
if (pRoot.getRightTree() != null) {
|
||||
printOffset(xOff);
|
||||
System.out.println(pRoot.getContent());
|
||||
xOff++;
|
||||
printHirarchical(pRoot.getRightTree(), xOff);
|
||||
}
|
||||
}
|
||||
|
||||
private void printOffset(int off) {
|
||||
for (int i = 0; i < off; i++) {
|
||||
if (i == off - 1) {
|
||||
System.out.print("|> ");
|
||||
} else {
|
||||
System.out.print("| ");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,3 +1,82 @@
|
|||
#BlueJ package file
|
||||
#Thu Nov 19 10:29:11 CET 2020
|
||||
dependency1.from=Decision
|
||||
dependency1.to=Dataset
|
||||
dependency1.type=UsesDependency
|
||||
dependency2.from=DecisionNode
|
||||
dependency2.to=Dataset
|
||||
dependency2.type=UsesDependency
|
||||
dependency3.from=MorseTree
|
||||
dependency3.to=BinaryTree
|
||||
dependency3.type=UsesDependency
|
||||
dependency4.from=MorseTree
|
||||
dependency4.to=DecisionNode
|
||||
dependency4.type=UsesDependency
|
||||
dependency5.from=MorseTree
|
||||
dependency5.to=Decision
|
||||
dependency5.type=UsesDependency
|
||||
editor.fx.0.height=1000
|
||||
editor.fx.0.width=1296
|
||||
editor.fx.0.x=-8
|
||||
editor.fx.0.y=-8
|
||||
objectbench.height=93
|
||||
objectbench.width=1256
|
||||
package.divider.horizontal=0.6
|
||||
package.divider.vertical=0.8890122086570478
|
||||
package.editor.height=794
|
||||
package.editor.width=1145
|
||||
package.editor.x=0
|
||||
package.editor.y=0
|
||||
package.frame.height=1000
|
||||
package.frame.width=1296
|
||||
package.numDependencies=5
|
||||
package.numTargets=6
|
||||
package.showExtends=true
|
||||
package.showUses=true
|
||||
project.charset=UTF-8
|
||||
readme.height=58
|
||||
readme.name=@README
|
||||
readme.width=47
|
||||
readme.x=10
|
||||
readme.y=10
|
||||
target1.height=50
|
||||
target1.name=MorseTree
|
||||
target1.showInterface=false
|
||||
target1.type=ClassTarget
|
||||
target1.width=90
|
||||
target1.x=420
|
||||
target1.y=400
|
||||
target2.height=50
|
||||
target2.name=Dataset
|
||||
target2.showInterface=false
|
||||
target2.type=ClassTarget
|
||||
target2.width=80
|
||||
target2.x=330
|
||||
target2.y=160
|
||||
target3.height=50
|
||||
target3.name=Classification
|
||||
target3.showInterface=false
|
||||
target3.type=ClassTarget
|
||||
target3.width=110
|
||||
target3.x=60
|
||||
target3.y=140
|
||||
target4.height=50
|
||||
target4.name=BinaryTree
|
||||
target4.showInterface=false
|
||||
target4.type=ClassTarget
|
||||
target4.width=190
|
||||
target4.x=200
|
||||
target4.y=20
|
||||
target5.height=50
|
||||
target5.name=DecisionNode
|
||||
target5.showInterface=false
|
||||
target5.type=AbstractTarget
|
||||
target5.width=110
|
||||
target5.x=150
|
||||
target5.y=320
|
||||
target6.height=50
|
||||
target6.name=Decision
|
||||
target6.showInterface=false
|
||||
target6.type=ClassTarget
|
||||
target6.width=80
|
||||
target6.x=560
|
||||
target6.y=240
|
||||
|
|
Loading…
Reference in New Issue