我有一类红黑树。
我想按顺序打印它(所以数字会从最小到最小的打印)。
这是打印方法:
public void printTreeInOrder(Node node){
//in-order printing (sorted)
if (!(isNull(node))){
printTreeInOrder((node.getLeft()));
System.out.println(node.getValue());
printTreeInOrder(node.getRight());
}
}
但我想只打印k个最小的数字。如果我可以限制递归调用的数量会很容易,比如持有一个sentinal并计算调用该方法的次数。
但是我如何在递归函数中使用它呢?
我认为制作一个全局变量k并在函数中计算它,但它听起来不对,和k本身就是一个变量,它不是常数。 我有办法计算递归函数中打印的数字量吗?
谢谢,
艾伦
答案 0 :(得分:2)
该方法返回剩余要打印的元素数,并接受可从此节点打印的最大元素数。
package main
import (
"fmt"
)
func main() {
x := "hello"
q := fmt.Sprintf("\\\"%s\"\\", x)
fmt.Println(q)
}