我只想从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 );
}
}
但是这个条件在如果不起作用?我在哪里弄错了?
最佳答案
正如我在评论中提到的,在第一次打印后,您无需检查a:
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 );
}
}
}