Files
Le-Compte-est-Bon/tree.c
2021-01-20 16:22:59 +01:00

46 lines
867 B
C

#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#include "lceb.h"
void gen_tree(seq, n, nb1, nb0)
int *seq;
int n; /* number of nodes */
int nb1; /* number of "1" */
int nb0; /* number of "0" */
{
int i;
if((nb1 + nb0) == 2*n) { /* end */
seq[2*n] = 0;
printf("tree=");
for (i=0; i<=2*n; ++i)
printf("%d", seq[i]);
putchar('\n');
return;
}
if(nb1 >= nb0 && nb1 < n) {
seq[nb1+nb0] = 1;
gen_tree(seq, n, nb1+1, nb0);
}
if(nb0 < nb1 && nb1 <=n) {
seq[nb1+nb0] = 0;
gen_tree(seq, n, nb1, nb0+1);
}
}
#ifdef STANDALONE
main(ac, av)
int ac;
char **av;
{
int n;
int array[1024];
n=atoi(av[1]);
gen_tree(array, n, 0, 0);
exit(0);
}
#endif