Board logo

标题: C语言经典算法之递归车厢 [打印本页]

作者: 苹果也疯狂    时间: 2014-5-22 09:40     标题: C语言经典算法之递归车厢

/**********递归题改为非递归题实例 车厢********/
#include<stdio.h>


#define MAX 4
int stack[MAX],p=-1;
struct
{
  intnum;
  intsign;
}train[MAX];
void sub()
{
  intinc;
if(p==MAX-1)
    {
     for(inc=0;inc<=p;inc++)
       printf("%3d",stack[inc]);
     printf("\n");
    }
else
   {  
     for(inc=0;inc<MAX;inc++)
       if(train[inc].sign==0)
         {
           train[inc].sign=1;
           stack[++p]=train[inc].num; /*进栈*/
           sub();                     /*递归*/
           train[inc].sign=0;
           p--;                       /*出栈*/
         }
    }
}
main()
{
  inttemp;
for(temp=0;temp<MAX;temp++)
    {
     train[temp].num=temp+1;
     train[temp].sign=0;
    }
printf("The result is:\n");
sub();
}




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0