主类:二叉树
它包含根节点和二叉树构造函数
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);
}
}
}