M
mandir_wahin_banayenge
Any suggestions welcome. Sorry if google groups screws up the
formatting.
TIA,
MWB
#include <iostream>
#include <list>
using namespace std;
void
print_perm(const list<int> &p)
{
list<int>::const_iterator t;
for(t=p.begin(); t != p.end() ; t++)
cout<< *t << ' ';
cout<<endl;
}
void
get_perm(int i,int n,list<int> &p)
{
list<int>::iterator t=p.begin();
if(i>n) return;
for(int k=0;k<i;k++)
{
p.insert(t++,i);
if (i==n) print_perm(p);
else get_perm(i+1,n,p);
p.remove(i);
}
}
void
gen_perm(int n)
{
list<int> p;
get_perm(1,n,p);
}
int
main(int argc,char *argv[])
{
int n=5;
gen_perm(n);
return 0;
}
formatting.
TIA,
MWB
#include <iostream>
#include <list>
using namespace std;
void
print_perm(const list<int> &p)
{
list<int>::const_iterator t;
for(t=p.begin(); t != p.end() ; t++)
cout<< *t << ' ';
cout<<endl;
}
void
get_perm(int i,int n,list<int> &p)
{
list<int>::iterator t=p.begin();
if(i>n) return;
for(int k=0;k<i;k++)
{
p.insert(t++,i);
if (i==n) print_perm(p);
else get_perm(i+1,n,p);
p.remove(i);
}
}
void
gen_perm(int n)
{
list<int> p;
get_perm(1,n,p);
}
int
main(int argc,char *argv[])
{
int n=5;
gen_perm(n);
return 0;
}