|
-
October 21st, 2009, 09:18 AM
#1
Recursion Help
Hey everyone. I've built binary tree using recursion and included a function to print out the sum of the level of the tree of a given input by a user. My problem isn't that my function doesn't work, but it prints out to the console each levels sum where I only want the level given from the input. For example, if this is my tree:
1
/ \
2 3
/ \ / \
4 5 6 7
it will print out:
1
5
22
where I only want it to print out 22.
Now I see in my function why is it printing out all lines, but can't figure out a different solution. I'm using a static variable to add the total up. If you suggest using a global static variable, I already tried and doesn't work. Any suggestions would really help. The function code is below and based on the tree above as a sample tree with the input -3. Thanks a ton!
void sumLevel(treeNode *&ptr, int input /* -3 */, static int depth /* == -1*/)
{
static int depthTotal = 0;
if(input == depth)
{
depthTotal = depthTotal + ptr->data;
cout << depthTotal << endl;
return;
}
if(ptr->left != NULL)
{
sumLevel(ptr->left, input, depth - 1);
}
if(ptr->right != NULL)
{
sumLevel(ptr->right, input, depth - 1);
}
}
Tags for this Thread
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|