stacks.cpp

来自「在一个列车调度站中」· C++ 代码 · 共 38 行

CPP
38
字号
#include<iostream>
#include<fstream>
using namespace std;
const int LENGTH=50;
int count,n=0;
int stack[LENGTH]={0},a[LENGTH]={0};
void main(){
	void file(int left,int s,int right);
	freopen("input.txt","r",stdin);
	freopen("output.txt","w",stdout);
	cin>>n;
	if(n>LENGTH||n<1){
		cout<<"Error!";
	 }
	file(1,1,1);
	cout<<count<<" "<<endl;
}
void file(int left,int s,int right){
	int i;
	if(left>n){
		for(i=1;i<right;i++)
			cout<<a[i]<<" ";
	    for(i=s-1;i>0;i--)
			cout<<stack[i]<<" ";
		count++;
		cout<<endl;
		}
	else {
	    if(s>1){
			a[right]=stack[s-1];
			file(left,s-1,right+1);
			stack[s-1]=a[right];
		}
		stack[s]=left;file(left+1,s+1,right);	
		}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?