Pagini recente » Cod sursa (job #2193875) | Cod sursa (job #1391922) | Cod sursa (job #387451) | Cod sursa (job #1558182) | Cod sursa (job #67432)
Cod sursa(job #67432)
using namespace std;
#include <cstdio>
#include <string>
#include <ctime>
#include <cstdlib>
struct nod { bool end; nod *next[10];};
typedef nod* trie;
trie T;
void init()
{
T=new nod;
memset(T->next, 0, sizeof(T->next));
}
void insert(trie T, int v)
{
if(!v) return;
int r=v%10;
if(!T->next[r])
{
T->next[r]=new nod;
memset(T->next[r], 0, sizeof(T->next));
T->end=0;
}
if(!(v/10))
{
T->end=1;
return;
}
insert(T->next[r], v/10);
}
int find(trie T, int v)
{
int r=v%10;
if(!(v/10))
if(T->end && T->next[r])return 1;
else return 0;
if(!T->next[r]) return 0;
return find(T->next[r], v/10);
}
int main()
{
srand(time(0));
init();
insert(T, 13);
insert(T, 8);
insert(T, 23);
insert(T, 5);
// printf("%d\n", find(T, 8));
// printf("%d\n", find(T, 9));
int n=100000;
for(int i=1;i<=n;++i) insert(T, rand()-1);
//printf("%d\n", sizeof(T));
return 0;
}