0

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

しかし、この条件がうまくいかない場合は?どこで間違えましたか?

4

1 に答える 1

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 );
        }
    }
}
于 2013-01-15T14:37:26.743 に答える