一个进栈的所有出栈序列 发表于 2019-07-26 1234567891011121314151617181920212223242526272829303132333435//给出出栈顺序 求所有进栈的序列 || 给出入栈顺序 求出栈顺序 void print(stack<int> v) { while (v.size() != 0) { cout<<v.top()<<" "; v.pop(); } cout<<endl;}//a存放入栈序列,b模拟入栈, c存放可能的出栈的序列void dfs(stack<int> a, stack<int> b, stack<int> c) { if (a.size() == 0 && b.size() == 0 ) { print(c); return; } if (a.size() != 0) { //入栈 int val = a.top(); b.push(val); a.pop(); dfs(a, b, c); b.pop(); a.push(val); } if (b.size() != 0) { //出栈 int val = b.top(); c.push(val); b.pop(); dfs(a, b, c); c.pop(); b.push(val); } return;}