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