generate Tree

This commit is contained in:
Tim 2020-11-19 11:10:28 +01:00
parent 12825d2a6c
commit a8d81fa9a4
4 changed files with 185 additions and 1 deletions

Binary file not shown.

13
MorseTree/MorseTree.ctxt Normal file
View File

@ -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

92
MorseTree/MorseTree.java Normal file
View File

@ -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("| ");
}
}
}
}

View File

@ -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