这是我迄今为止。我需要计算深度为k的树的大小。什么是BST以上的深度
public static int above(Node t, int k) {
if (t == null) { return 0; }
if (t.key > k)
return (above(t.left, k - 1) + above(t.right, k - 1) + 1);
else {
return above(t.left, k - 1) + above(t.right, k - 1);
}
}
编辑:此代码工作和计算在深度k树的大小。
public static int at(Node t, int k) {
if(t == null) return 0;
if(k == 0) return 1;
return at(t.left, k - 1) + at(t.right, k - 1);
}
什么是存储在t.key?这是节点在树中的深度吗? –
t.key是当前密钥,因此它检查当前密钥是否大于k – yummyyenni
但是,为什么要将当前密钥与您感兴趣的深度进行比较?尽管任何给定节点的关键字与树的深度没有任何关系, –