#include <iostream>
#include <cstdio>
using namespace std;
int n;
char ch[20];
char Stack[100];
char Queue[100];
void fun(int ,int ,int );
int main()
{
int i=0;
cout<<"请输入进栈的字符串:(最多不超过20个)\n";
while(((ch[i]=getchar())!='\n')&&(i<20))
{
++i;
}
n=i;
cout<<"可能字符串为:\n";
fun(-1,-1,0);
return 0;
}
void fun(int rear,int top,int i)
{
if(rear==n-1)
{
for(int m=0; m<n; m++)
cout<<Queue[m]<<' ';
cout<<endl;
}
else
{
if(top>-1)
{
rear++;
Queue[rear]=Stack[top];
top--;
fun(rear,top,i);
top++;
Stack[top]=Queue[rear];
rear--;
}
if(i<n)
{
top++;
Stack[top]=ch[i];
fun(rear,top,i+1);
}
}
}
C++输出可能栈
最新推荐文章于 2024-07-13 16:19:00 发布