递归车厢.c
来自「数据结构涵盖几乎所有的数据结构课程的实现」· C语言 代码 · 共 49 行
C
49 行
/**********递归题改为非递归题实例 车厢********/
#include<stdio.h>
#define MAX 4
int stack[MAX],p=-1;
struct
{
int num;
int sign;
}train[MAX];
void sub()
{
int inc;
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()
{
int temp;
for(temp=0;temp<MAX;temp++)
{
train[temp].num=temp+1;
train[temp].sign=0;
}
printf("The result is:\n");
sub();
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?