以下是从网上找到的递归函数,但看不太明白,麻烦各位大哥大姐帮忙分析一下,谢谢!
void Attemper(int pos,int path[],int num){
//车厢调度递归函数,当前处理位置pos的元素
int i,m;
//SqStack *S;
//InitStack(S);
if(pos<c_num){
Push(pos+1);
Attemper(pos+1,path,num);
Pop();
}
if(!Emptys()){
m=Pop();
path[num]=m;
num++;
Attemper(pos,path,num);
Push(m);
}
if(pos==c_num&&Emptys()){
for(i=0;i<num;i++)printf("%2d",path[i]);
printf("\n");
}
}//Attemper
还有如何改为先输出1 2 3 最后输出3 2 1
谢谢!