http://eternallyconfuzzled.com/tuts/datastructures/jsw_tut_andersson.aspx
Andersson Trees
Posted on January 5, 2012 (Last modified on August 7, 2020) | 1 minutes | Kinshuk Chandra
http://eternallyconfuzzled.com/tuts/datastructures/jsw_tut_andersson.aspx
/\*
Two passes with constant space
\*/
int printSum(Tree t, int toPrint)
{
if(t == NULL)
return 0;
int lsum = printSum(t->left, toPrint);
int rsum = printSum(t->right, 0);
int sum = lsum + t->data + rsum;
if(toPrint)
printf("%d ", sum);
printSum(t->right, toPrint);
return sum;
}
/\*
One pass with n space
\*/
int printSum2(Tree t, int a\[\], int \*pos)
{
if(t == NULL)
return 0;
int lsum = printSum2(t->left, a, pos);
(\*pos)++;
int p = \*pos;
int rsum = printSum2(t->right,a, pos);
return a\[p\] = lsum + t->data + rsum;
}