我想只从bst树打印n个第一个元素,所以我添加了全局变量计数器
int a = 0;
void print (wezel **korzen,int x)
{
if((*korzen) != NULL && (a < x))
{
print( &((*korzen)->lewe),x );
a++;
printf("%s %d\n", (*korzen)->wartosc, (*korzen)->ile);
print( &((*korzen)->prawe),x );
}
}
但这种情况如果不起作用?哪里弄错了?
答案 0 :(得分:2)
正如我在评论中提到的,你不会在第一次印刷后检查:
int a = 0;
void print (wezel **korzen,int x)
{
if((*korzen) != NULL && (a < x))
{
print( &((*korzen)->lewe),x );
// A has incremented since last check
if (a < x) {
printf("%s %d\n", (*korzen)->wartosc, (*korzen)->ile);
a++;
print( &((*korzen)->prawe),x );
}
}
}