以下是从网上找到的递归函数,但看不太明白,麻烦各位大哥大姐帮忙分析一下,谢谢!
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 
谢谢!