输出进栈出栈的所有序列
来源:互联网 发布:淘宝图片怎么签 编辑:程序博客网 时间:2024/04/29 19:03
输出进栈出栈的所有序列
/* 输出进栈出栈的所有序列 * 如 abc 则输出可以为:cba,bac,bca,abc,acb * input 为输入字符串,output为输出字符串,保存出栈的序列,需要O(n)的空间复杂度 * stack<char> *s 为模拟的栈 * 思路:递归与回溯*/
#include<iostream>#include<stack>using namespace std;
int n=0;void stackseq2(char *input,int in_index, stack<char> *s, char *output,int out_index) {if((in_index==n) && s->empty()) {output[n]=0;cout<<output<<endl;}else {if(in_index<n) {s->push(input[in_index++]);stackseq2(input,in_index, s, output,out_index);in_index--;s->pop();}if(!s->empty()) {output[out_index++]=s->top();s->pop(); stackseq2(input,in_index, s, output,out_index);s->push(output[--out_index]);}}}void main(){stack<char> s;char input[100];cin>>input;while(input[0]!='#'){cout<<"============="<<endl;n=strlen(input);char *output=new char[n+1];stackseq2(input,0, &s, output,0); delete []output; cin>>input;}}
- 输出进栈出栈的所有序列
- 输出所有的最长公共子序列
- 输出所有的最长公共子序列
- 输出和为n的所有的连续自然数序列
- 给一串数字,输出所有的出栈序列
- 输出所有的最长单调递增子序列。
- 任意数字序列“123456”之类,输出它们所有的排列组合
- 任意数字、字符序列,输出它们所有的排列组合
- 输出所有最长公用子序列的实现(Java)
- 【动态规划】输出所有的最长公共子序列
- 动态规划—输出所有的最长公共子序列
- 输出所有和为S的连续正数序列
- 给定一个序列,输出所有满足栈规则的所有情况
- 对于一个入栈序列输出所有的出栈序列
- 给定入栈序列1到n,输出所有可能的出栈序列
- 一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列。
- 卡特兰数(Catalan)应用:输出所有N对合法括号序列和输出所有已知进栈序列的合法出栈序列
- 针对如"123456"之类的任意字符序列,输出它们所有的排列组合
- 布同:如何循序渐进学习Python语言
- 推送通知相关开源项目--PushSharp、APNS-PHP以及Pyapns等
- wamp的卸载和安装注意事项(集成请绕行)
- Ubuntu 12.04下实现eclipse中文编码GBK问题
- 招聘iOS开发,老板必问的5个问题
- 输出进栈出栈的所有序列
- Word VBA语法高亮VBNET
- Arcgis Server javascript— ExtJS显示查询数据
- 游戏玩家到程序员的蜕变
- 字符数组,字符指针,Sizeof总结
- Error restoring domain: operation failed: failed to read qemu header
- SSH配置(三)-Spring配置
- Agile Web Development with Rails第十二章笔记——任务G:付款
- 求一个集合的所有子集