#include<iostream>
#include<stack>
#include"inclink.h"
#define N 5
using namespace std;
inclink<int> a[N];
int ins(int pos,int n){
int l=(2<<2*N)-1,r,ans=0;
r=(1<<pos)-1;
r&=n;
n=n>>pos;
l&=n;
ans|=l<<2;
ans|=1;
ans=ans<<pos;
ans|=r;
return ans;
}
void fun(){
int n;
a[0].Insert(1);
for(int i=1;i<N;++i){
// cout<<i<<endl;
for(int k=0;k<a[i-1].Length();++k){
for(int j=0;j<=i;++j){
a[i-1].GetElem(k+1,n);
/* for(int m=0;m<2*i+2;++m){
cout<<(n&1<<m?1:0);
}cout<<"-"<<j<<":";*/
n=ins(j,n);
a[i].Insert(n);
/* for(int m=0;m<2*i+2;++m){
cout<<(n&1<<m?1:0);
}cout<<endl;*/
a[i].GetElem(1,n);
/* cout<<" ";
for(int m=0;m<2*i+2;++m){
cout<<(n&1<<m?1:0);
}cout<<endl;*/
}
}
}
}
int main(){
int form[]={1,2,3,4,5,6};
fun();
/* for(int i=0;i<a[N-1].Length();i++){
int n=a[N-1].GetElem(i+1);
for(int m=0;m<2*N;++m){
cout<<(n&1<<m?1:0);
}cout<<endl;
}*/
for(int i=0;i<a[N-1].Length();i++){
int n;
a[N-1].GetElem(i+1,n);
stack<int> s;
int ans[N],c=0,f=0;
for(int j=0;j<2*N;++j){
if(n&1<<j){
s.push(form[f++]);
}else{
ans[c++]=s.top();
s.pop();
}
}
if(ans[0]==3&&ans[1]==4){
for(int j=0;j<N;j++){
cout<<ans[j]<<' ';
}
cout<<endl;
}
}
return 0;
}
输出N个元素的所有出栈可能
需积分: 47 134 浏览量
2013-11-28
14:02:57
上传
评论 2
收藏 3KB ZIP 举报
静夜诗
- 粉丝: 1
- 资源: 3
最新资源
- 农村信用社联合社计算机信息系统投产与变更管理办.docx
- 农村信用社联合社计算机信息系统数据管理办法.docx
- 利用SPSS作临床效度分析线上计算网站介绍-医学研究部统计谘.(医学PPT课件).ppt
- 利用Zabbix监控mysqldump定时备份数据库状态.docx
- 利用计算机解决问题的基本过程.doc
- 化工铁路通信工程总结.doc
- 北京大学网络教育软件工程作业.docx
- 医药公司(连锁店)计算机操作规程未新系统的自行按照旧制修改-新系统过制的编号加修模版.doc
- 医药公司(连锁店)计算机系统操作规程模版.doc
- 医药连锁门店计算机系统的操作和管理程序未新系统的自行按照旧制修改-新系统过制的编号加修模版.docx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈