2 nanjusoil nanjusoil 于 2014.11.16 14:58 提问

c语言递回瓶颈 树 排列

void swap( char *a, char *b ){
char tmp;
tmp = *a;
*a = *b;
*b = tmp;
}

void permutation( char *c, int d, int e ){
int f;

if( d == e )
    printf( "%s\n", c );
else{
    for( f = d; f <= e; f++ ){
        swap( ( c + d ), ( c + f ) );
        permutation( c, d + 1, e );
        swap( ( c + d ), ( c + f ) );
    }
}

}

int main(){
char wordInput[25];
int len, arrLen, f;

printf( "\nEnter text: " );
gets( wordInput );
len = strlen( wordInput );
arrLen = len - 1;

permutation( wordInput, 0, arrLen );

return 0;

}

为何终止条件为f==d呢

我试过在要进入吓一下递回前(即permutation( c, d + 1, e );前)

print他出来发现确实有点像一棵树

请问如何思考递回该把它画成一棵树吗?

2个回答

save4me
save4me   Ds   Rxr 2014.11.18 22:45

你为什么说终止条件为f == d?程序中是f = d,是赋,不是比较。

save4me
save4me   Ds   Rxr 2014.12.18 10:35

上面的答案有帮助吗?如果还有问题,请提出来,如果对答案满意,请顶一下,并标记为采纳答案,谢谢!

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!