karlangadas

TREE: 15TAD

Nov 14th, 2016
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.82 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include "arbol.h"
  5.  
  6. void print(int path[20],int ini,int fin){
  7.     for (int i = ini; i <= fin; i++)
  8.         printf("%d ",path[i]);
  9.     printf("\n");
  10. }
  11. void findSum2(TNode *node, int sum, int path[20], int level) {
  12.     if (node == NULL)
  13.         return;
  14.     path[level] = node->elem;
  15.     int t = 0;
  16.     for (int i = level; i >= 0; i--){
  17.         t += path[i];
  18.         if (t == sum)
  19.             print(path, i, level);
  20.     }
  21.     findSum2(node->left, sum, path, level + 1);
  22.     findSum2(node->right, sum, path, level + 1);
  23.    
  24. }
  25. void findSum(TNode *node, int sum) {
  26.     int path[20];
  27.     findSum2(node, sum, path, 0);
  28. }
  29. int main(){
  30.     TBinaryTree T;
  31.     TNode q;
  32.     init_tree(&T);
  33.     insert(&T,5);
  34.     insert(&T,3);
  35.     insert(&T,7);
  36.     insert(&T,1);
  37.     insert(&T,4);
  38.     insert(&T,6);
  39.     insert(&T,8);
  40.     insert(&T,0);
  41.     findSum(T.root,7);
  42. }
Advertisement
Add Comment
Please, Sign In to add comment