当1 2 3 4 5这几辆火车按顺序进入堆栈中,求火车所有可能出来的顺序
思路:
#include "stdio.h"
void ConditionalPermutation(int i,int t,int m,int n);
int OUTPUT[10];
int WAIT[10];
int j;
int main(int argc, char const *argv[])
{
ConditionalPermutation(1,4,0,0);
return 0;
}
void ConditionalPermutation(int i,int t,int m,int n)
{
if(n==t&&m==0)
{
printf("Possiblity~ ");
for(j=0;j<t;j++)
{
printf("%d",OUTPUT[j]);
}
printf("\n");
}
//两个选择:1、弹出栈顶元素 2、将x下一个元素压入元素压入栈中
//i 即将要压入的元素
//t 条件排列的总数
//m 栈内元素个数
//n "输出队列"中的个数
if (m>=1)
{
//一种选择:弹出栈顶元素
//保证,