0

我只想打印 bst 树中的 n 个第一个元素,所以我添加了全局变量 counter

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 );
    }
}

但是如果这种情况不起作用?我在哪里犯错了?

4

1 回答 1

2

正如我在评论中提到的,您在第一次打印后不检查 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 );
        }
    }
}
于 2013-01-15T14:37:26.743 回答