Pagini recente » Cod sursa (job #2906165) | Cod sursa (job #2569704) | Cod sursa (job #1356220) | Cod sursa (job #619377) | Cod sursa (job #1976652)
#include <iostream>
#include<fstream>
#include<cstring>
using namespace std;
struct trie
{
short nr;
trie* v[10];
trie()
{
nr=0;
for(int i=0;i<10;++i)
this->v[i]=NULL;
}
}*r[20];
char s[30];
int i,j,n;
inline void ad(char s[])
{
int k=strlen(s),i=0;
trie *p=r[k];
while(p->v[ s[i] - '0' ]!=NULL && i<k)
{
p=p->v[ s[i] - '0' ];
++i;
}
while(i<k)
{
p->v[ s[i] - '0' ]=new trie;
p=p->v[ s[i] - '0' ];
++i;
}
p->nr++;
}
ofstream g("algsort.out");
void showtime(trie *root,int dim,int l)
{
if(dim>l)
{
for(int i=0;i<root->nr;++i)
g<<s<<" ";
return ;
}
for(int i=0;i<10;++i)
if(root->v[i]!=NULL)
{
s[dim-1]=i+'0';
showtime(root->v[i],dim+1,l);
}
}
int main()
{
ifstream f("algsort.in");
f>>n;
for(i=1;i<11;++i)r[i]=new trie;
for(i=0;i<n;++i)
{
f>>s;
ad(s);
}
memset(s,0,30);
for(i=1;i<11;++i)
showtime(r[i],1,i);
return 0;
}