changed gen_reduced_trees() to match gen_tree() args

This commit is contained in:
2021-01-25 20:41:26 +01:00
parent b41bf41f56
commit 2e83f4b833
3 changed files with 24 additions and 23 deletions

1
.gitignore vendored
View File

@@ -9,3 +9,4 @@ tree
lceb
gmon.out
OUT*
kata*

2
lceb.c
View File

@@ -165,7 +165,7 @@ int main(ac, av)
if (treetype==TREE_CATALAN) {
gen_tree(intarray, nops, 0, 0);
} else {
gen_reduced_trees(nops+1);
gen_reduced_trees(nops);
}
nstacks=n_stacks();
ntrees=n_trees();

44
tree.c
View File

@@ -254,25 +254,25 @@ NODE *build_tree(desc, size)
void gen_reduced_trees(n)
int n;
{
int size=n*2-1, i;
int size=n*2+1, i;
TREE *tree;
char name[80];
char *seq2[]= {
char *seq1[]= {
"100"
};
char *seq3[]= {
char *seq2[]= {
"10100"
};
char *seq4[]= {
char *seq3[]= {
"1010100",
"1100100"
};
char *seq5[]= {
char *seq4[]= {
"101010100",
"110010100",
"101100100"
};
char *seq6[]= {
char *seq5[]= {
"10101010100",
"11001010100",
"10110010100",
@@ -281,7 +281,7 @@ void gen_reduced_trees(n)
"11010010100"
};
if (n<2 || n>MAXINPUT) {
if (n<1 || n>=MAXINPUT) {
fprintf(stderr, "gen_reduced_trees: wrong leaves %d\n", n);
return;
}
@@ -290,6 +290,12 @@ void gen_reduced_trees(n)
# endif
switch (n) {
case 1:
ntrees++;
sprintf(name, "Tree %d", ntrees);
tree=new_tree(name);
tree->head=build_tree(seq1[0], size);
break;
case 2:
ntrees++;
sprintf(name, "Tree %d", ntrees);
@@ -297,13 +303,15 @@ void gen_reduced_trees(n)
tree->head=build_tree(seq2[0], size);
break;
case 3:
ntrees++;
sprintf(name, "Tree %d", ntrees);
tree=new_tree(name);
tree->head=build_tree(seq3[0], size);
for (i=0; i<2; ++i) {
ntrees++;
sprintf(name, "Tree %d", ntrees);
tree=new_tree(name);
tree->head=build_tree(seq3[i], size);
}
break;
case 4:
for (i=0; i<2; ++i) {
for (i=0; i<3; ++i) {
ntrees++;
sprintf(name, "Tree %d", ntrees);
tree=new_tree(name);
@@ -311,19 +319,11 @@ void gen_reduced_trees(n)
}
break;
case 5:
for (i=0; i<3; ++i) {
ntrees++;
sprintf(name, "Tree %d", ntrees);
tree=new_tree(name);
tree->head=build_tree(seq5[i], size);
}
break;
case 6:
for (i=0; i<6; ++i) {
ntrees++;
sprintf(name, "Tree %d", ntrees);
tree=new_tree(name);
tree->head=build_tree(seq6[i], size);
tree->head=build_tree(seq5[i], size);
}
break;
}
@@ -403,7 +403,7 @@ int main(ac, av)
gen_tree(array, n, 0, 0);
} else {
printf("generating Wedderburn tree...\n");
gen_reduced_trees(n+1);
gen_reduced_trees(n);
}
print_trees(details);
exit(0);