Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public List<Tree<T>> SubTreesWithGivenSum(int sum)
- {
- List<Tree<T>> subtreesWithSum = new List<Tree<T>>();
- this.GetSubtreesWithSum(this, subtreesWithSum, sum);
- return subtreesWithSum;
- }
- private void GetSubtreesWithSum(Tree<T> tree, List<Tree<T>> subtreesWithSum, int sum)
- {
- //int treeSum = this.GetTreeSum(tree);
- int treeSum = this.GetTreeSumDfs(tree, 0);
- if (treeSum == sum)
- {
- subtreesWithSum.Add(tree);
- }
- foreach (Tree<T> child in tree.Children)
- {
- this.GetSubtreesWithSum(child, subtreesWithSum, sum);
- }
- }
- private int GetTreeSumDfs(Tree<T> tree, int sum)
- {
- sum += Convert.ToInt32(tree.Key);
- foreach (Tree<T> child in tree.Children)
- {
- sum += Convert.ToInt32(child.Key);
- this.GetTreeSumDfs(child, sum);
- }
- return sum;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement