changed gen_reduced_trees() to match gen_tree() args
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -9,3 +9,4 @@ tree
|
||||
lceb
|
||||
gmon.out
|
||||
OUT*
|
||||
kata*
|
||||
|
2
lceb.c
2
lceb.c
@@ -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
44
tree.c
@@ -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);
|
||||
|
Reference in New Issue
Block a user