メインクラス: 二分木
ルートノードとバイナリツリーコンストラクターが含まれています
public class BinaryTree{
Node root;
BinaryTree (int depth){
this.root = new Node(depth);
root.generateTree(depth);
}
サブクラス ノード。
generateTree() メソッドはこのクラスで定義されていますが、機能しません。
ノードはツリーの枝を表します。
generateTree は二分木を返します。
class Node{
final int LEAF = 1;
final int BALL = 2;
final int CANDLE = 3;
int depth;
int decoration;
String color;
boolean on;
Node left;
Node right;
Node(int depth){
this.depth = depth;
}
void setLeaf(){
decoration = LEAF;
}
void setBall(String color){
color = color;
}
void setCandle(boolean on){
on = on;
}
BinaryTree generateTree(int depth) {
if (depth == 0) {
return root;
}
else if (depth > 1) {
if (root.right == null){
root.right = new Node(depth-1);
root.left = new Node(depth-1);
}
for (int i=0; i < depth; i++){
Node node = new Node(depth);
node.right = new Node(depth-1);
node.left = new Node(depth-1);
}
}
generateTree(depth - 1);
}
}
}